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 -> Var.t array -> Environment.t
    = "camlidl_environment_ap_environment_remove"
  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 dimension : Environment.t -> Dim.dimension
    = "camlidl_environment_ap_environment_dimension"
  external size : Environment.t -> int
    = "camlidl_environment_ap_environment_size"
  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, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    Format.formatter -> Environment.t -> unit
end