sig   type t =       Datatype.Option(Datatype.Integer).t *       Datatype.Option(Datatype.Integer).t   val ty : t Type.t   val name : string   val descr : t Descr.t   val packed_descr : Structural_descr.pack   val reprs : t list   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 varname : t -> string   val mem_project : (Project_skeleton.t -> bool) -> t -> bool   val copy : t -> t   val pretty : Format.formatter -> t -> unit   val pretty_debug : Format.formatter -> t -> unit   val inject_range : int -> int -> t   val enlarge : Integer.t -> t -> t   val lift :     (Datatype.Integer.t -> Datatype.Integer.t -> Datatype.Integer.t) ->     (Datatype.Integer.t -> Datatype.Integer.t -> Datatype.Integer.t) ->     t -> t -> t   val equal : t -> t -> bool   val is_included : t -> t -> bool   val sub : t -> t -> t   val join : t -> t -> t   val add : t -> t -> t   val narrow : t -> t -> t Bottom.or_bottom   val succ : t -> t   val neg : t -> t   val mul_ct : Integer.t -> t -> t   val mul : t -> t -> t   val zero : Integer.t option * Integer.t option   val widen : ?threshold:Datatype.Integer.t -> t -> t -> t   val to_ival : t -> Ival.t   val from_ival : Ival.t -> t   type classify =       ContainsZero     | Positive of Integer.t * Integer.t option     | Negative of Integer.t option * Integer.t   val classify_sign : t -> Gauges_domain.G.Bounds.classify   val div_towards_minus_infty : Integer.t -> Integer.t -> Integer.t   val div_towards_plus_infty : Integer.t -> Integer.t -> Integer.t   val backward_nb :     b:t -> r:Ival.t -> [> `Value of Integer.t option * Integer.t option ] end