The first five fields are common across all algebraic variants.
Constructors
LibComponentLocalBuildInfocomponentLocalName :: 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 :: ComponentIdThe computed ComponentId of this component.
componentUnitId :: UnitIdThe computed UnitId which 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 instantiated
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 ModuleRenaming which may used to hide or rename modules. This is what gets translated into
-package-idarguments. This is a modernized version of componentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId]componentInternalDeps :: [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-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.
FLibComponentLocalBuildInfocomponentLocalName :: 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 :: ComponentIdThe computed ComponentId of this component.
componentUnitId :: UnitIdThe computed UnitId which 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 ModuleRenaming which may used to hide or rename modules. This is what gets translated into
-package-idarguments. This is a modernized version of componentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId]componentInternalDeps :: [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-installwill also handle these correctly too!
ExeComponentLocalBuildInfocomponentLocalName :: 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 :: ComponentIdThe computed ComponentId of this component.
componentUnitId :: UnitIdThe computed UnitId which 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 ModuleRenaming which may used to hide or rename modules. This is what gets translated into
-package-idarguments. This is a modernized version of componentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId]componentInternalDeps :: [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-installwill also handle these correctly too!
TestComponentLocalBuildInfocomponentLocalName :: 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 :: ComponentIdThe computed ComponentId of this component.
componentUnitId :: UnitIdThe computed UnitId which 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 ModuleRenaming which may used to hide or rename modules. This is what gets translated into
-package-idarguments. This is a modernized version of componentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId]componentInternalDeps :: [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-installwill also handle these correctly too!
BenchComponentLocalBuildInfocomponentLocalName :: 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 :: ComponentIdThe computed ComponentId of this component.
componentUnitId :: UnitIdThe computed UnitId which 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 ModuleRenaming which may used to hide or rename modules. This is what gets translated into
-package-idarguments. This is a modernized version of componentPackageDeps, which is kept around for BC purposes.componentExeDeps :: [UnitId]componentInternalDeps :: [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-installwill also handle these correctly too!
Instances8Read, Show, Generic, Binary, Structured, IsNode, …
Read ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfoShow ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfoGeneric ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfoBinary ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfoStructured ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfoIsNode ComponentLocalBuildInfoDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfotype Rep ComponentLocalBuildInfo = D1 ('MetaDataDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfo"ComponentLocalBuildInfo"
"Distribution.Types.ComponentLocalBuildInfo"
"Cabal-3.12.1.0-fc60"
'False) ((C1 ('MetaCons"LibComponentLocalBuildInfo"
'PrefixI 'True) (((S1 ('MetaSel ('Just"componentLocalName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: (S1 ('MetaSel ('Just"componentComponentId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId) :*: S1 ('MetaSel ('Just"componentUnitId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId))) :*: (S1 ('MetaSel ('Just"componentIsIndefinite_"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Just"componentInstantiatedWith"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(ModuleName, OpenModule)]) :*: S1 ('MetaSel ('Just"componentPackageDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UnitId, MungedPackageId)])))) :*: ((S1 ('MetaSel ('Just"componentIncludes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(OpenUnitId, ModuleRenaming)]) :*: (S1 ('MetaSel ('Just"componentExeDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]) :*: S1 ('MetaSel ('Just"componentInternalDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]))) :*: ((S1 ('MetaSel ('Just"componentCompatPackageKey"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just"componentCompatPackageName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MungedPackageName)) :*: (S1 ('MetaSel ('Just"componentExposedModules"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ExposedModule]) :*: S1 ('MetaSel ('Just"componentIsPublic"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))))) :+: C1 ('MetaCons"FLibComponentLocalBuildInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"componentLocalName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: (S1 ('MetaSel ('Just"componentComponentId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId) :*: S1 ('MetaSel ('Just"componentUnitId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId))) :*: ((S1 ('MetaSel ('Just"componentPackageDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UnitId, MungedPackageId)]) :*: S1 ('MetaSel ('Just"componentIncludes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(OpenUnitId, ModuleRenaming)])) :*: (S1 ('MetaSel ('Just"componentExeDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]) :*: S1 ('MetaSel ('Just"componentInternalDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]))))) :+: (C1 ('MetaCons"ExeComponentLocalBuildInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"componentLocalName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: (S1 ('MetaSel ('Just"componentComponentId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId) :*: S1 ('MetaSel ('Just"componentUnitId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId))) :*: ((S1 ('MetaSel ('Just"componentPackageDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UnitId, MungedPackageId)]) :*: S1 ('MetaSel ('Just"componentIncludes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(OpenUnitId, ModuleRenaming)])) :*: (S1 ('MetaSel ('Just"componentExeDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]) :*: S1 ('MetaSel ('Just"componentInternalDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId])))) :+: (C1 ('MetaCons"TestComponentLocalBuildInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"componentLocalName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: (S1 ('MetaSel ('Just"componentComponentId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId) :*: S1 ('MetaSel ('Just"componentUnitId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId))) :*: ((S1 ('MetaSel ('Just"componentPackageDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UnitId, MungedPackageId)]) :*: S1 ('MetaSel ('Just"componentIncludes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(OpenUnitId, ModuleRenaming)])) :*: (S1 ('MetaSel ('Just"componentExeDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]) :*: S1 ('MetaSel ('Just"componentInternalDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId])))) :+: C1 ('MetaCons"BenchComponentLocalBuildInfo"
'PrefixI 'True) ((S1 ('MetaSel ('Just"componentLocalName"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: (S1 ('MetaSel ('Just"componentComponentId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentId) :*: S1 ('MetaSel ('Just"componentUnitId"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UnitId))) :*: ((S1 ('MetaSel ('Just"componentPackageDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(UnitId, MungedPackageId)]) :*: S1 ('MetaSel ('Just"componentIncludes"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(OpenUnitId, ModuleRenaming)])) :*: (S1 ('MetaSel ('Just"componentExeDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId]) :*: S1 ('MetaSel ('Just"componentInternalDeps"
) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [UnitId])))))))type Key ComponentLocalBuildInfo = UnitIdDefined in Cabal-3.12.1.0 · Distribution.Types.ComponentLocalBuildInfo