sig
  type t =
      Set of Ival.O.t
    | Interval of Abstract_interp.Int.t * Abstract_interp.Int.t *
        Abstract_interp.Int.t
    | Imprecise of Abstract_interp.Int.t * Abstract_interp.Int.t
  exception Unbounded
  val empty : Tr_offset.t
  val reduce_ival_by_bound :
    Ival.tt -> My_bigint.t -> Base.validity -> bool * (bool * Tr_offset.t)
  val filter_by_bound_for_reading :
    with_alarms:CilE.warn_mode ->
    Ival.tt -> My_bigint.t -> Base.validity -> Tr_offset.t
  val filter_by_bound_for_writing :
    exact:bool ->
    with_alarms:CilE.warn_mode ->
    Ival.tt -> My_bigint.t -> Base.validity -> bool * Tr_offset.t
end