Module Shape.DeBruijn_index
We use de Bruijn indices for some binders in Shape.t below to increase sharing. That is, de Bruijn indices ensure that alpha-equivalent terms are actually equal. This reduces redundancy when we emit shape information into the debug information in later stages of the compiler (see dwarf_type.ml), since equal shapes produce the same debug information.
val create : int -> Shape.DeBruijn_index.tval move_under_binder : Shape.DeBruijn_index.t -> Shape.DeBruijn_index.tval equal : Shape.DeBruijn_index.t -> Shape.DeBruijn_index.t -> boolval print : Stdlib.Format.formatter -> Shape.DeBruijn_index.t -> unit