Cabal
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Backpack.LinkedComponent

Description

Synopsis

Documentation

data LinkedComponent Source #

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.

Constructors

LinkedComponent 

Fields

Instances

Instances details
Package LinkedComponent Source # 
Instance details

Defined in Distribution.Backpack.LinkedComponent

Methods

packageId :: LinkedComponent -> PackageIdentifier

lc_insts :: LinkedComponent -> [(ModuleName, OpenModule)] Source #

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_uid :: LinkedComponent -> OpenUnitId Source #

The OpenUnitId of this component in the "default" instantiation. See also lc_insts. LinkedComponents cannot be instantiated (e.g., there is no ModSubst instance for them).

lc_cid :: LinkedComponent -> ComponentId Source #

Uniquely identifies a LinkedComponent. Corresponds to cc_cid.

lc_pkgid :: LinkedComponent -> PackageId Source #

Corresponds to cc_pkgid.

toLinkedComponent Source #

Arguments

:: Verbosity 
-> Bool

Whether there are any "promised" package dependencies which we won't find already installed.

-> FullDb 
-> PackageId 
-> LinkedComponentMap 
-> ConfiguredComponent 
-> LogProgress LinkedComponent 

toLinkedComponents Source #

Arguments

:: Verbosity 
-> Bool

Whether there are any "promised" package dependencies which we won't find already installed.

-> FullDb 
-> PackageId 
-> LinkedComponentMap 
-> [ConfiguredComponent] 
-> LogProgress [LinkedComponent] 

type LinkedComponentMap = Map ComponentId (OpenUnitId, ModuleShape) Source #