-- | The register alloctor state
-data RA_State
+data RA_State freeRegs
= RA_State
{
ra_blockassig :: BlockAssignment
-- | free machine registers
- , ra_freeregs :: {-#UNPACK#-}!FreeRegs
+ , ra_freeregs :: !freeRegs
-- | assignment of temps to locations
, ra_assig :: RegMap Loc
-- | The register allocator monad type.
-newtype RegM a
- = RegM { unReg :: RA_State -> (# RA_State, a #) }
+newtype RegM freeRegs a
+ = RegM { unReg :: RA_State freeRegs -> (# RA_State freeRegs, a #) }