sig
  type t
  external make : int option -> Linexpr0.t
    = "camlidl_linexpr0_ap_linexpr0_make"
  val of_list :
    int option -> (Coeff.t * Dim.t) list -> Coeff.t option -> Linexpr0.t
  val of_array :
    int option -> (Coeff.t * Dim.t) array -> Coeff.t option -> Linexpr0.t
  external minimize : Linexpr0.t -> unit
    = "camlidl_linexpr0_ap_linexpr0_minimize"
  external copy : Linexpr0.t -> Linexpr0.t
    = "camlidl_linexpr0_ap_linexpr0_copy"
  external compare : Linexpr0.t -> Linexpr0.t -> int
    = "camlidl_linexpr0_ap_linexpr0_compare"
  external hash : Linexpr0.t -> int = "camlidl_linexpr0_ap_linexpr0_hash"
  external get_size : Linexpr0.t -> int
    = "camlidl_linexpr0_ap_linexpr0_get_size"
  external get_cst : Linexpr0.t -> Coeff.t
    = "camlidl_linexpr0_ap_linexpr0_get_cst"
  external get_coeff : Linexpr0.t -> int -> Coeff.t
    = "camlidl_linexpr0_ap_linexpr0_get_coeff"
  val set_list :
    Linexpr0.t -> (Coeff.t * Dim.t) list -> Coeff.t option -> unit
  val set_array :
    Linexpr0.t -> (Coeff.t * Dim.t) array -> Coeff.t option -> unit
  external set_cst : Linexpr0.t -> Coeff.t -> unit
    = "camlidl_linexpr0_ap_linexpr0_set_cst"
  external set_coeff : Linexpr0.t -> int -> Coeff.t -> unit
    = "camlidl_linexpr0_ap_linexpr0_set_coeff"
  external iter : (Coeff.t -> Dim.t -> unit) -> Linexpr0.t -> unit
    = "camlidl_expr0_linexpr0_iter"
  val print : (Dim.t -> string) -> Format.formatter -> Linexpr0.t -> unit
end