sig
type t
val of_num : int -> Indexes.t
val of_var : Variable.t -> Indexes.t
val add : Indexes.t -> int -> Indexes.t
val get_var : Indexes.t -> Variable.t option
val get_shift : Indexes.t -> int
val to_string : Indexes.t -> string
val to_tex : Indexes.t -> string
val max : Indexes.t -> Indexes.t -> Indexes.t
val min : Indexes.t -> Indexes.t -> Indexes.t
val equal : Indexes.t -> Indexes.t -> bool
val total_compare : Indexes.t -> Indexes.t -> int
val compute_term : Indexes.t -> int -> int
type variable = Variable.t
type term = t
type substituable = t
val substitute : substituable -> var:variable -> by:term -> substituable
module LoopingMap :
sig
type loopable = t
type 'a t
val empty : 'a t
val add : 'a t -> key:loopable -> data:'a -> 'a t
val find : 'a t -> key:loopable -> 'a option
end
val inverse : Indexes.t -> Indexes.t
end