| LibComponentLocalBuildInfo |  | 
| Fields componentLocalName :: ComponentNameIt 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.componentComponentId :: ComponentIdcomponentUnitId :: UnitIdThe computed UnitIdwhich uniquely identifies this
 component.  Might be hashed.componentIsIndefinite_ :: BoolIs this an indefinite component (i.e. has unfilled holes)?componentInstantiatedWith :: [(ModuleName, OpenModule)]How the component was instantiatedcomponentPackageDeps :: [(UnitId, MungedPackageId)]Resolved internal and external package dependencies for this component.
 The BuildInfospecifies 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.componentIncludes :: [(OpenUnitId, ModuleRenaming)]The set of packages that are brought into scope during
 compilation, including a ModuleRenamingwhich may used
 to hide or rename modules.  This is what gets translated into-package-idarguments.  This is a modernized version ofcomponentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId] componentInternalDeps :: [UnitId]The internal dependencies which induce a graph on the
 ComponentLocalBuildInfoof this package.  This does NOT
 coincide withcomponentPackageDepsbecause it ALSO records
 'build-tool' dependencies on executables.  Maybe one daycabal-installwill also handle these correctly too!componentCompatPackageKey :: StringCompatibility "package key" that we pass to older versions of GHC.componentCompatPackageName :: MungedPackageNameCompatibility "package name" that we register this component as.componentExposedModules :: [ExposedModule]A list of exposed modules (either defined in this component,
 or reexported from another component.)componentIsPublic :: BoolConvenience field, specifying whether or not this is the
 "public library" that has the same name as the package.
 | 
| FLibComponentLocalBuildInfo |  | 
| Fields componentLocalName :: ComponentNameIt 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.componentComponentId :: ComponentIdcomponentUnitId :: UnitIdThe computed UnitIdwhich uniquely identifies this
 component.  Might be hashed.componentPackageDeps :: [(UnitId, MungedPackageId)]Resolved internal and external package dependencies for this component.
 The BuildInfospecifies 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.componentIncludes :: [(OpenUnitId, ModuleRenaming)]The set of packages that are brought into scope during
 compilation, including a ModuleRenamingwhich may used
 to hide or rename modules.  This is what gets translated into-package-idarguments.  This is a modernized version ofcomponentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId] componentInternalDeps :: [UnitId]The internal dependencies which induce a graph on the
 ComponentLocalBuildInfoof this package.  This does NOT
 coincide withcomponentPackageDepsbecause it ALSO records
 'build-tool' dependencies on executables.  Maybe one daycabal-installwill also handle these correctly too!
 | 
| ExeComponentLocalBuildInfo |  | 
| Fields componentLocalName :: ComponentNameIt 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.componentComponentId :: ComponentIdcomponentUnitId :: UnitIdThe computed UnitIdwhich uniquely identifies this
 component.  Might be hashed.componentPackageDeps :: [(UnitId, MungedPackageId)]Resolved internal and external package dependencies for this component.
 The BuildInfospecifies 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.componentIncludes :: [(OpenUnitId, ModuleRenaming)]The set of packages that are brought into scope during
 compilation, including a ModuleRenamingwhich may used
 to hide or rename modules.  This is what gets translated into-package-idarguments.  This is a modernized version ofcomponentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId] componentInternalDeps :: [UnitId]The internal dependencies which induce a graph on the
 ComponentLocalBuildInfoof this package.  This does NOT
 coincide withcomponentPackageDepsbecause it ALSO records
 'build-tool' dependencies on executables.  Maybe one daycabal-installwill also handle these correctly too!
 | 
| TestComponentLocalBuildInfo |  | 
| Fields componentLocalName :: ComponentNameIt 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.componentComponentId :: ComponentIdcomponentUnitId :: UnitIdThe computed UnitIdwhich uniquely identifies this
 component.  Might be hashed.componentPackageDeps :: [(UnitId, MungedPackageId)]Resolved internal and external package dependencies for this component.
 The BuildInfospecifies 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.componentIncludes :: [(OpenUnitId, ModuleRenaming)]The set of packages that are brought into scope during
 compilation, including a ModuleRenamingwhich may used
 to hide or rename modules.  This is what gets translated into-package-idarguments.  This is a modernized version ofcomponentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId] componentInternalDeps :: [UnitId]The internal dependencies which induce a graph on the
 ComponentLocalBuildInfoof this package.  This does NOT
 coincide withcomponentPackageDepsbecause it ALSO records
 'build-tool' dependencies on executables.  Maybe one daycabal-installwill also handle these correctly too!
 | 
| BenchComponentLocalBuildInfo |  | 
| Fields componentLocalName :: ComponentNameIt 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.componentComponentId :: ComponentIdcomponentUnitId :: UnitIdThe computed UnitIdwhich uniquely identifies this
 component.  Might be hashed.componentPackageDeps :: [(UnitId, MungedPackageId)]Resolved internal and external package dependencies for this component.
 The BuildInfospecifies 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.componentIncludes :: [(OpenUnitId, ModuleRenaming)]The set of packages that are brought into scope during
 compilation, including a ModuleRenamingwhich may used
 to hide or rename modules.  This is what gets translated into-package-idarguments.  This is a modernized version ofcomponentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId] componentInternalDeps :: [UnitId]The internal dependencies which induce a graph on the
 ComponentLocalBuildInfoof this package.  This does NOT
 coincide withcomponentPackageDepsbecause it ALSO records
 'build-tool' dependencies on executables.  Maybe one daycabal-installwill also handle these correctly too!
 |