sig
  type ival =
      Ival of Ival.t
    | Float of Cil_types.fkind * float option
    | Rational
    | Real
    | Nan
  type t = Interval.ival
  val is_included : Interval.t -> Interval.t -> bool
  val join : Interval.t -> Interval.t -> Interval.t
  val meet : Interval.t -> Interval.t -> Interval.t
  val widen : Interval.t -> Interval.t
  val is_singleton_int : Interval.t -> bool
  val extract_ival : Interval.t -> Ival.t
  val ikind_of_ival : Ival.t -> Cil_types.ikind
  val interv_of_typ : Cil_types.typ -> Interval.t
  val extended_interv_of_typ : Cil_types.typ -> Interval.t
  module Env :
    sig
      val clear : unit -> unit
      val add : Cil_types.logic_var -> Interval.t -> unit
      val remove : Cil_types.logic_var -> unit
    end
  val infer : Cil_types.term -> Interval.t
end