sig
  type t = {
    mutable texpr0 : Apron.Texpr0.t;
    mutable env : Apron.Environment.t;
  }
  type unop = Apron.Texpr0.unop = Neg | Cast | Sqrt
  type binop = Apron.Texpr0.binop = Add | Sub | Mul | Div | Mod | Pow
  type typ =
    Apron.Texpr0.typ =
      Real
    | Int
    | Single
    | Double
    | Extended
    | Quad
  type round = Apron.Texpr0.round = Near | Zero | Up | Down | Rnd
  type expr =
      Cst of Apron.Coeff.t
    | Var of Apron.Var.t
    | Unop of Apron.Texpr1.unop * Apron.Texpr1.expr * Apron.Texpr1.typ *
        Apron.Texpr1.round
    | Binop of Apron.Texpr1.binop * Apron.Texpr1.expr * Apron.Texpr1.expr *
        Apron.Texpr1.typ * Apron.Texpr1.round
  val of_expr : Apron.Environment.t -> Apron.Texpr1.expr -> Apron.Texpr1.t
  val copy : Apron.Texpr1.t -> Apron.Texpr1.t
  val of_linexpr : Apron.Linexpr1.t -> Apron.Texpr1.t
  val to_expr : Apron.Texpr1.t -> Apron.Texpr1.expr
  external cst : Apron.Environment.t -> Apron.Coeff.t -> Apron.Texpr1.t
    = "camlidl_texpr1_ap_texpr1_cst"
  val var : Apron.Environment.t -> Apron.Var.t -> Apron.Texpr1.t
  external unop :
    Apron.Texpr0.unop ->
    Apron.Texpr1.t ->
    Apron.Texpr0.typ -> Apron.Texpr0.round -> Apron.Texpr1.t
    = "camlidl_texpr1_ap_texpr1_unop"
  external binop :
    Apron.Texpr0.binop ->
    Apron.Texpr1.t ->
    Apron.Texpr1.t ->
    Apron.Texpr0.typ -> Apron.Texpr0.round -> Apron.Texpr1.t
    = "camlidl_texpr1_ap_texpr1_binop"
  val is_interval_cst : Apron.Texpr1.t -> bool
  val is_interval_linear : Apron.Texpr1.t -> bool
  val is_interval_polynomial : Apron.Texpr1.t -> bool
  val is_interval_polyfrac : Apron.Texpr1.t -> bool
  val is_scalar : Apron.Texpr1.t -> bool
  external extend_environment :
    Apron.Texpr1.t -> Apron.Environment.t -> Apron.Texpr1.t
    = "camlidl_texpr1_ap_texpr1_extend_environment"
  external extend_environment_with :
    Apron.Texpr1.t -> Apron.Environment.t -> unit
    = "camlidl_texpr1_ap_texpr1_extend_environment_with"
  val get_texpr0 : Apron.Texpr1.t -> Apron.Texpr0.t
  val get_env : Apron.Texpr1.t -> Apron.Environment.t
  val string_of_unop : Apron.Texpr1.unop -> string
  val string_of_binop : Apron.Texpr1.binop -> string
  val string_of_typ : Apron.Texpr1.typ -> string
  val string_of_round : Apron.Texpr1.round -> string
  val print_unop : Format.formatter -> Apron.Texpr1.unop -> unit
  val print_binop : Format.formatter -> Apron.Texpr1.binop -> unit
  val print_typ : Format.formatter -> Apron.Texpr1.typ -> unit
  val print_round : Format.formatter -> Apron.Texpr1.round -> unit
  val print_expr : Format.formatter -> Apron.Texpr1.expr -> unit
  val print : Format.formatter -> Apron.Texpr1.t -> unit
end