module UHC.Light.Compiler.CodeGen.BuiltinSizeInfo
( BuiltinInfo (..)
, BuiltinInfoMp
, builtinRecNm
, builtinKnownRecTyNmL )
where
import UHC.Light.Compiler.Base.HsName
import UHC.Light.Compiler.Base.HsName.Builtin
import UHC.Light.Compiler.Opts
import qualified UHC.Light.Compiler.Config as Cfg
import UHC.Light.Compiler.CodeGen.BasicAnnot
import qualified Data.Map as Map

{-# LINE 37 "src/ehc/CodeGen/BuiltinSizeInfo.chs" #-}
data BuiltinInfo
  = BuiltinInfo
      { biIsSigned		        :: Bool
      }

emptyBuiltinInfo :: BuiltinInfo
emptyBuiltinInfo
  = BuiltinInfo
      { biIsSigned              = False
  	  }

{-# LINE 65 "src/ehc/CodeGen/BuiltinSizeInfo.chs" #-}
type BuiltinInfoMp = Map.Map HsName BuiltinInfo

{-# LINE 346 "src/ehc/CodeGen/BuiltinSizeInfo.chs" #-}
builtinRecNm :: Int -> HsName
builtinRecNm = hsnProd

{-# LINE 351 "src/ehc/CodeGen/BuiltinSizeInfo.chs" #-}
builtinKnownRecTyNmL :: [HsName]
builtinKnownRecTyNmL
  = map builtinRecNm (0:[2..10])

{-# LINE 361 "src/ehc/CodeGen/BuiltinSizeInfo.chs" #-}
builtinNm :: EHCOpts -> (EHBuiltinNames -> HsName) -> HsName
builtinNm = ehcOptBuiltin