module UHC.Light.Compiler.ConfigInternalVersions
( InternalVersionCombined
, internalVersionCombined
, internalVersionTySys, internalVersionCodeGen, internalVersionHI, internalVersionCore, internalVersionCoreRun )
where
import Data.Word
import Data.Bits

{-# LINE 16 "src/ehc/ConfigInternalVersions.chs" #-}
-- | Encoding of internal version
type InternalVersion 			= Word64
type InternalVersionCombined 	= Word64

mkInternalVersion :: Int -> InternalVersion
mkInternalVersion = fromIntegral

{-# LINE 25 "src/ehc/ConfigInternalVersions.chs" #-}
internalVersionCombined :: InternalVersionCombined
internalVersionCombined =
      internalVersionHI
  .|. (internalVersionCore 		`shiftL` 8)
  .|. (internalVersionCoreRun 	`shiftL` 16)
  .|. (internalVersionTySys 	`shiftL` 24)
  .|. (internalVersionCodeGen 	`shiftL` 32)

{-# LINE 35 "src/ehc/ConfigInternalVersions.chs" #-}
-- | For variation in type inferencing
internalVersionTySys = mkInternalVersion 5

-- | For variation in code gen
internalVersionCodeGen = mkInternalVersion 1

-- | For binary/serialized HI .hi files and all data stored there
internalVersionHI = mkInternalVersion 1

-- | For binary/serialized Core .cr/.bcr/.tcr etc files
internalVersionCore = mkInternalVersion 20

-- | For binary/serialized CoreRun .crr/.bcrr./tcrr etc files
internalVersionCoreRun = mkInternalVersion 11