sig
  type tt = {
    h : int;
    v : Abstract_value.Unhashconsed_Int_Intervals.t;
    tag : int;
  }
  type widen_hint = Abstract_value.Unhashconsed_Int_Intervals.widen_hint
  exception Error_Bottom
  exception Error_Top
  val tag : Abstract_value.Int_Intervals.tt -> int
  val pretty_debug :
    Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
  val pretty : Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
  val hash_internal : Abstract_value.Int_Intervals.tt -> int
  val equal_internal :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt -> bool
  val name : string
  module IntIntervalsHashtbl :
    sig
      type data = tt
      type t
      val create : int -> t
      val merge : t -> data -> data
      val iter : t -> (data -> unit) -> unit
      val clear : t -> unit
      val release : t -> unit
      val shallow_copy : t -> t
      val addr : t -> int
      val overwrite : old:t -> fresh:t -> unit
      val pretty_debug : Format.formatter -> t -> int -> unit
    end
  val table : Abstract_value.Int_Intervals.IntIntervalsHashtbl.t
  val current_tag : int Pervasives.ref
  val wrap :
    Abstract_value.Unhashconsed_Int_Intervals.t ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val top : Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val bottom : Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val compare :
    Abstract_value.Int_Intervals.tt -> Abstract_value.Int_Intervals.tt -> int
  type t = tt
  val ty : t Type.t
  val name : string
  val descr : t Descr.t
  val packed_descr : Structural_descr.pack
  val reprs : t list
  val equal : t -> t -> bool
  val compare : t -> t -> int
  val hash : t -> int
  val pretty_code : Format.formatter -> t -> unit
  val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit
  val pretty : Format.formatter -> t -> unit
  val varname : t -> string
  val mem_project : (Project_skeleton.t -> bool) -> t -> bool
  val copy : t -> t
  val fold_enum :
    split_non_enumerable:'->
    '-> Abstract_value.Int_Intervals.tt -> '-> 'd
  val diff_if_one : '-> 'b
  val diff :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val cardinal_less_than : Abstract_value.Int_Intervals.tt -> int -> int
  val splitting_cardinal_less_than :
    split_non_enumerable:int -> Abstract_value.Int_Intervals.tt -> int -> int
  val meet :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val link :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val join :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val narrow :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val widen :
    Abstract_value.Unhashconsed_Int_Intervals.widen_hint ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val cardinal_zero_or_one : Abstract_value.Int_Intervals.tt -> bool
  val intersects :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt -> bool
  val is_included :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt -> bool
  val is_included_exn :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Int_Intervals.tt -> unit
  val inject :
    Abstract_value.Unhashconsed_Int_Intervals.elt list ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val pretty_typ :
    Cil_types.typ option ->
    Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
  val from_ival_size :
    Ival.tt ->
    Int_Base.tt -> Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val fold :
    (Abstract_value.Unhashconsed_Int_Intervals.elt -> '-> 'a) ->
    Abstract_value.Int_Intervals.tt -> '-> 'a
  val is_top : t -> bool
  exception Not_a_set
  val project_set :
    Abstract_value.Int_Intervals.tt ->
    Abstract_value.Unhashconsed_Int_Intervals.elt list
  val inject_zero_max :
    Int_Base.tt -> Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
  val inject_bounds :
    Abstract_interp.Int.t ->
    Abstract_interp.Int.t ->
    Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
end