let unbox_int_type (ye : typ) : (int * sign) =
  let tp = unrollType ye in
  let s = 
    match tp with 
      TInt (i, _) -> 
        if (isSigned i) then
          Signed
        else
          Unsigned
    | _ -> raise Not_an_integer
  in
  (bitsSizeOf tp), s