    -- | Magic 'PackageName's.
    --
    -- @since 3.0.0.0
    module Distribution.Types.PackageName.Magic where

    import Distribution.Types.PackageId
    import Distribution.Types.PackageName
    import Distribution.Types.Version

    -- | Used as a placeholder in "Distribution.Backpack.ReadyComponent"
    nonExistentPackageThisIsCabalBug :: PackageName
    nonExistentPackageThisIsCabalBug :: PackageName
    nonExistentPackageThisIsCabalBug = String -> PackageName
    mkPackageName String
    "nonexistent-package-this-is-a-cabal-bug"

    -- | Used by @cabal new-repl@, @cabal new-run@ and @cabal new-build@
    fakePackageName :: PackageName
    fakePackageName :: PackageName
    fakePackageName = String -> PackageName
    mkPackageName String
    "fake-package"

    -- | Used by @cabal new-run@ and @cabal new-build@
    fakePackageCabalFileName :: FilePath
    fakePackageCabalFileName :: String
    fakePackageCabalFileName = String
    "fake-package.cabal"

    -- | 'fakePackageName' with 'version0'.
    fakePackageId :: PackageId
    fakePackageId :: PackageId
    fakePackageId = PackageName -> Version -> PackageId
    PackageIdentifier PackageName
    fakePackageName Version
    version0