sig
  type t = {
    mutable generator0 : Apron.Generator0.t;
    mutable env : Apron.Environment.t;
  }
  and earray = {
    mutable generator0_array : Apron.Generator0.t array;
    mutable array_env : Apron.Environment.t;
  }
  type typ = Apron.Generator0.typ = LINE | RAY | VERTEX | LINEMOD | RAYMOD
  val make : Apron.Linexpr1.t -> Apron.Generator0.typ -> Apron.Generator1.t
  val copy : Apron.Generator1.t -> Apron.Generator1.t
  val print : Format.formatter -> Apron.Generator1.t -> unit
  val get_typ : Apron.Generator1.t -> Apron.Generator0.typ
  val iter :
    (Apron.Coeff.t -> Apron.Var.t -> unit) -> Apron.Generator1.t -> unit
  val set_typ : Apron.Generator1.t -> Apron.Generator0.typ -> unit
  val set_list :
    Apron.Generator1.t -> (Apron.Coeff.t * Apron.Var.t) list -> unit
  val set_array :
    Apron.Generator1.t -> (Apron.Coeff.t * Apron.Var.t) array -> unit
  external get_coeff : Apron.Generator1.t -> Apron.Var.t -> Apron.Coeff.t
    = "camlidl_generator1_ap_generator1_get_coeff"
  external set_coeff :
    Apron.Generator1.t -> Apron.Var.t -> Apron.Coeff.t -> unit
    = "camlidl_generator1_ap_generator1_set_coeff"
  external extend_environment :
    Apron.Generator1.t -> Apron.Environment.t -> Apron.Generator1.t
    = "camlidl_generator1_ap_generator1_extend_environment"
  external extend_environment_with :
    Apron.Generator1.t -> Apron.Environment.t -> unit
    = "camlidl_generator1_ap_generator1_extend_environment_with"
  val array_make : Apron.Environment.t -> int -> Apron.Generator1.earray
  val array_print :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    Format.formatter -> Apron.Generator1.earray -> unit
  val array_length : Apron.Generator1.earray -> int
  val array_get : Apron.Generator1.earray -> int -> Apron.Generator1.t
  val array_set :
    Apron.Generator1.earray -> int -> Apron.Generator1.t -> unit
  external array_extend_environment :
    Apron.Generator1.earray -> Apron.Environment.t -> Apron.Generator1.earray
    = "camlidl_generator1_ap_generator1_array_extend_environment"
  external array_extend_environment_with :
    Apron.Generator1.earray -> Apron.Environment.t -> unit
    = "camlidl_generator1_ap_generator1_array_extend_environment_with"
  val get_env : Apron.Generator1.t -> Apron.Environment.t
  val get_linexpr1 : Apron.Generator1.t -> Apron.Linexpr1.t
  val get_generator0 : Apron.Generator1.t -> Apron.Generator0.t
end