    -----------------------------------------------------------------------------
    -- |
    -- Module      :  Distribution.Simple.GHC.IPI642
    -- Copyright   :  (c) The University of Glasgow 2004
    -- License     :  BSD3
    --
    -- Maintainer  :  cabal-devel@haskell.org
    -- Portability :  portable
    --
    -- Helper functions for 'Distribution.Simple.GHC.IPI642'.
    module Distribution.Simple.GHC.IPIConvert (
        PackageIdentifier, convertPackageId,
        License, convertLicense,
        convertModuleName
      ) where

    import qualified Distribution.Package as Current hiding (installedUnitId)
    import qualified Distribution.License as Current

    import Distribution.Version
    import Distribution.ModuleName
    import Distribution.Text

    import Data.Maybe

    data PackageIdentifier = PackageIdentifier {
        pkgName    :: String,
        pkgVersion :: Version
      }
      deriving Read

    convertPackageId :: PackageIdentifier -> Current.PackageIdentifier
    convertPackageId PackageIdentifier { pkgName = n, pkgVersion = v } =
      Current.PackageIdentifier (Current.PackageName n) v

    data License = GPL | LGPL | BSD3 | BSD4
                 | PublicDomain | AllRightsReserved | OtherLicense
      deriving Read

    convertModuleName :: String -> ModuleName
    convertModuleName s = fromJust $ simpleParse s

    convertLicense :: License -> Current.License
    convertLicense GPL  = Current.GPL  Nothing
    convertLicense LGPL = Current.LGPL Nothing
    convertLicense BSD3 = Current.BSD3
    convertLicense BSD4 = Current.BSD4
    convertLicense PublicDomain = Current.PublicDomain
    convertLicense AllRightsReserved = Current.AllRightsReserved
    convertLicense OtherLicense = Current.OtherLicense