{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module GHC.Builtin.Imports (
  module GHC.Builtin.Imports
, module Imports
) where

import Data.Word
import Language.Haskell.Syntax.Module.Name
import GHC.Data.FastString
import GHC.Types.Unique
import GHC.Unit.Types as Imports
import GHC.Types.Name as Imports
import GHC.Types.SrcLoc as Imports

external :: Word64 -> Unit -> FastString -> NameSpace -> FastString -> SrcSpan -> Name
external :: Word64
-> Unit -> FastString -> NameSpace -> FastString -> SrcSpan -> Name
external Word64
unique Unit
unit FastString
module_ NameSpace
t FastString
name =
  Unique -> Module -> OccName -> SrcSpan -> Name
mkExternalName (Word64 -> Unique
mkUniqueGrimily Word64
unique) (Unit -> ModuleName -> Module
forall unit. unit -> ModuleName -> GenModule unit
Module Unit
unit (ModuleName -> Module) -> ModuleName -> Module
forall a b. (a -> b) -> a -> b
$ FastString -> ModuleName
ModuleName FastString
module_) (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
t FastString
name)

#if __GLASGOW_HASKELL__ >= 912
baseUnit :: Unit
baseUnit = fsToUnit "base"

thUnit :: Unit
thUnit = fsToUnit "template-haskell"
#endif

#if __GLASGOW_HASKELL__ == 908
ghcInternalUnit :: Unit
ghcInternalUnit :: Unit
ghcInternalUnit = FastString -> Unit
fsToUnit FastString
"ghc-internal"
#endif