sig
  type t = int
  and change = { dim : int array; intdim : int; realdim : int; }
  and change2 = {
    add : Apron.Dim.change option;
    remove : Apron.Dim.change option;
  }
  and perm = int array
  and dimension = { intd : int; reald : int; }
  val change_add_invert : Apron.Dim.change -> unit
  val perm_compose : Apron.Dim.perm -> Apron.Dim.perm -> Apron.Dim.perm
  val perm_invert : Apron.Dim.perm -> Apron.Dim.perm
end