sig
  val sizeofchar : unit -> Integer.t
  val sizeofpointer : unit -> int
  val sizeof : Cil_types.typ -> Int_Base.t
  val osizeof : Cil_types.typ -> Int_Base.t
  exception Neither_Int_Nor_Enum_Nor_Pointer
  val is_signed_int_enum_pointer : Cil_types.typ -> bool
  val signof_typeof_lval : Cil_types.lval -> bool
  val sizeof_vid : Cil_types.varinfo -> Int_Base.t
  val sizeof_lval : Cil_types.lval -> Int_Base.t
  val sizeof_pointed : Cil_types.typ -> Int_Base.t
  val osizeof_pointed : Cil_types.typ -> Int_Base.t
  val sizeof_pointed_lval : Cil_types.lval -> Int_Base.t
  val max_bit_address : unit -> Integer.t
  val max_bit_size : unit -> Integer.t
  val max_byte_address : unit -> Integer.t
  val max_byte_size : unit -> Integer.t
  val pretty_bits :
    Cil_types.typ ->
    use_align:bool ->
    align:Abstract_interp.Rel.t ->
    rh_size:Integer.t ->
    start:Integer.t ->
    stop:Integer.t -> Format.formatter -> bool * Cil_types.typ option
  type offset_match =
      MatchType of Cil_types.typ
    | MatchSize of Integer.t
    | MatchFirst
  exception NoMatchingOffset
  val find_offset :
    Cil_types.typ ->
    offset:Integer.t ->
    Bit_utils.offset_match -> Cil_types.offset * Cil_types.typ
end