sig
  type t = {
    mutable linexpr0 : Apron.Linexpr0.t;
    mutable env : Apron.Environment.t;
  }
  val make : ?sparse:bool -> Apron.Environment.t -> Apron.Linexpr1.t
  val minimize : Apron.Linexpr1.t -> unit
  val copy : Apron.Linexpr1.t -> Apron.Linexpr1.t
  val print : Format.formatter -> Apron.Linexpr1.t -> unit
  val set_list :
    Apron.Linexpr1.t ->
    (Apron.Coeff.t * Apron.Var.t) list -> Apron.Coeff.t option -> unit
  val set_array :
    Apron.Linexpr1.t ->
    (Apron.Coeff.t * Apron.Var.t) array -> Apron.Coeff.t option -> unit
  val iter :
    (Apron.Coeff.t -> Apron.Var.t -> unit) -> Apron.Linexpr1.t -> unit
  val get_cst : Apron.Linexpr1.t -> Apron.Coeff.t
  val set_cst : Apron.Linexpr1.t -> Apron.Coeff.t -> unit
  external get_coeff : Apron.Linexpr1.t -> Apron.Var.t -> Apron.Coeff.t
    = "camlidl_linexpr1_ap_linexpr1_get_coeff"
  external set_coeff :
    Apron.Linexpr1.t -> Apron.Var.t -> Apron.Coeff.t -> unit
    = "camlidl_linexpr1_ap_linexpr1_set_coeff"
  external extend_environment :
    Apron.Linexpr1.t -> Apron.Environment.t -> Apron.Linexpr1.t
    = "camlidl_linexpr1_ap_linexpr1_extend_environment"
  external extend_environment_with :
    Apron.Linexpr1.t -> Apron.Environment.t -> unit
    = "camlidl_linexpr1_ap_linexpr1_extend_environment_with"
  external is_integer : Apron.Linexpr1.t -> bool
    = "camlidl_linexpr1_ap_linexpr1_is_integer"
  external is_real : Apron.Linexpr1.t -> bool
    = "camlidl_linexpr1_ap_linexpr1_is_real"
  val get_linexpr0 : Apron.Linexpr1.t -> Apron.Linexpr0.t
  val get_env : Apron.Linexpr1.t -> Apron.Environment.t
end