sig
  type t = Abstract_interp.Int.t
  val pretty : Format.formatter -> Ival.Widen_Hints.V.t -> unit
  val compare : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> int
  val hash : Ival.Widen_Hints.V.t -> int
  module Datatype :
    sig
      type t = t
      val rehash : t -> t
      val descr : Unmarshal.t
      val copy : t -> t
      val name : string
      val register_comparable :
        ?compare:(t -> t -> int) ->
        ?equal:(t -> t -> bool) ->
        ?hash:(t -> int) -> ?physical_hash:(t -> int) -> unit -> unit
      val is_comparable_set : unit -> bool
      val hash : t -> int
      val physical_hash : t -> int
      val equal : t -> t -> bool
      val compare : t -> t -> int
      val contain_project : (Project.project -> t -> bool) option ref
    end
  val gt : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val le : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val ge : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val lt : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val eq : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val add :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val sub :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val mul :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val native_div :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val rem :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val pos_div :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val c_div :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val c_rem :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val cast :
    size:Ival.Widen_Hints.V.t ->
    signed:bool -> value:Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val abs : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val zero : Ival.Widen_Hints.V.t
  val one : Ival.Widen_Hints.V.t
  val two : Ival.Widen_Hints.V.t
  val four : Ival.Widen_Hints.V.t
  val minus_one : Ival.Widen_Hints.V.t
  val is_zero : Ival.Widen_Hints.V.t -> bool
  val is_one : Ival.Widen_Hints.V.t -> bool
  val equal : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> bool
  val pgcd :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val ppcm :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val min :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val max :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val length :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val of_int : int -> Ival.Widen_Hints.V.t
  val of_float : float -> Ival.Widen_Hints.V.t
  val of_int64 : Int64.t -> Ival.Widen_Hints.V.t
  val to_int : Ival.Widen_Hints.V.t -> int
  val to_float : Ival.Widen_Hints.V.t -> float
  val neg : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val succ : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val pred : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val round_up_to_r :
    min:Ival.Widen_Hints.V.t ->
    r:Ival.Widen_Hints.V.t ->
    modu:Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val round_down_to_r :
    max:Ival.Widen_Hints.V.t ->
    r:Ival.Widen_Hints.V.t ->
    modu:Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val pos_rem :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val shift_left :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val shift_right :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val fold :
    (Ival.Widen_Hints.V.t -> '-> 'a) ->
    inf:Ival.Widen_Hints.V.t ->
    sup:Ival.Widen_Hints.V.t -> step:Ival.Widen_Hints.V.t -> '-> 'a
  val logand :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val logor :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val logxor :
    Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val lognot : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val power_two : int -> Ival.Widen_Hints.V.t
  val two_power : Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
  val extract_bits :
    with_alarms:CilE.warn_mode ->
    start:Ival.Widen_Hints.V.t ->
    stop:Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t -> Ival.Widen_Hints.V.t
end