unboxInteger :: Addr -> GMState -> Int
unboxInteger a state
    = ub (hLookup (getHeap state) a)
    where 
    ub (NNum i) = i
    ub _ = error "Unboxing a non-integer"
unboxInteger :: Addr -> GMState -> Int
unboxInteger a state
    = ub (hLookup (getHeap state) a)
    where 
    ub (NNum i) = i
    ub _ = error "Unboxing a non-integer"
unboxInteger a state
    = ub (hLookup (getHeap state) a)
    where 
    ub (NNum i) = i
    ub _ = error "Unboxing a non-integer"