sig
  type typvar = INT | REAL
  and t
  external make : Var.t array -> Var.t array -> Environment.t
    = "camlidl_environment_ap_environment_make"
  external add : Environment.t -> Var.t array -> Var.t array -> Environment.t
    = "camlidl_environment_ap_environment_add"
  external remove : Environment.t -> Var.t array -> Environment.t
    = "camlidl_environment_ap_environment_remove"
  external rename :
    Environment.t -> Var.t array -> Var.t array -> Environment.t
    = "camlidl_environment_ap_environment_rename"
  external rename_perm :
    Environment.t -> Var.t array -> Var.t array -> Environment.t * Dim.perm
    = "camlidl_environment_ap_environment_rename_perm"
  external lce : Environment.t -> Environment.t -> Environment.t
    = "camlidl_environment_ap_environment_lce"
  external lce_change :
    Environment.t ->
    Environment.t -> Environment.t * Dim.change option * Dim.change option
    = "camlidl_environment_ap_environment_lce_change"
  external dimchange : Environment.t -> Environment.t -> Dim.change
    = "camlidl_environment_ap_environment_dimchange"
  external dimchange2 : Environment.t -> Environment.t -> Dim.change2
    = "camlidl_environment_ap_environment_dimchange2"
  external equal : Environment.t -> Environment.t -> bool
    = "camlidl_environment_ap_environment_equal"
  external compare : Environment.t -> Environment.t -> int
    = "camlidl_environment_ap_environment_compare"
  external hash : Environment.t -> int
    = "camlidl_environment_ap_environment_hash"
  external dimension : Environment.t -> Dim.dimension
    = "camlidl_environment_ap_environment_dimension"
  external size : Environment.t -> int
    = "camlidl_environment_ap_environment_size"
  external mem_var : Environment.t -> Var.t -> bool
    = "camlidl_environment_ap_environment_mem_var"
  external typ_of_var : Environment.t -> Var.t -> Environment.typvar
    = "camlidl_environment_ap_environment_typ_of_var"
  external vars : Environment.t -> Var.t array * Var.t array
    = "camlidl_environment_ap_environment_vars"
  external var_of_dim : Environment.t -> Dim.t -> Var.t
    = "camlidl_environment_ap_environment_var_of_dim"
  external dim_of_var : Environment.t -> Var.t -> Dim.t
    = "camlidl_environment_ap_environment_dim_of_var"
  val print :
    ?first:(unit, Stdlib.Format.formatter, unit) Stdlib.format ->
    ?sep:(unit, Stdlib.Format.formatter, unit) Stdlib.format ->
    ?last:(unit, Stdlib.Format.formatter, unit) Stdlib.format ->
    Stdlib.Format.formatter -> Environment.t -> unit
end