{-# 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