Distribution/Types/ComponentInclude.hs

    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