sig
  type t = { mutable tcons0 : Tcons0.t; mutable env : Environment.t; }
  and earray = {
    mutable tcons0_array : Tcons0.t array;
    mutable array_env : Environment.t;
  }
  type typ = Lincons0.typ = EQ | SUPEQ | SUP | DISEQ | EQMOD of Scalar.t
  val make : Texpr1.t -> Tcons1.typ -> Tcons1.t
  val copy : Tcons1.t -> Tcons1.t
  val string_of_typ : Tcons1.typ -> string
  val print : Format.formatter -> Tcons1.t -> unit
  val get_typ : Tcons1.t -> Tcons1.typ
  val set_typ : Tcons1.t -> Tcons1.typ -> unit
  external extend_environment : Tcons1.t -> Environment.t -> Tcons1.t
    = "camlidl_tcons1_ap_tcons1_extend_environment"
  external extend_environment_with : Tcons1.t -> Environment.t -> unit
    = "camlidl_tcons1_ap_tcons1_extend_environment_with"
  val get_env : Tcons1.t -> Environment.t
  val get_texpr1 : Tcons1.t -> Texpr1.t
  val get_tcons0 : Tcons1.t -> Tcons0.t
  val array_make : Environment.t -> int -> Tcons1.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 -> Tcons1.earray -> unit
  val array_length : Tcons1.earray -> int
  val array_get_env : Tcons1.earray -> Environment.t
  val array_get : Tcons1.earray -> int -> Tcons1.t
  val array_set : Tcons1.earray -> int -> Tcons1.t -> unit
  external array_extend_environment :
    Tcons1.earray -> Environment.t -> Tcons1.earray
    = "camlidl_tcons1_ap_tcons1_array_extend_environment"
  external array_extend_environment_with :
    Tcons1.earray -> Environment.t -> unit
    = "camlidl_tcons1_ap_tcons1_array_extend_environment_with"
end