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 -> Ocaml_typing.Shape.DeBruijn_index.tval move_under_binder :
Ocaml_typing.Shape.DeBruijn_index.t ->
Ocaml_typing.Shape.DeBruijn_index.tval equal :
Ocaml_typing.Shape.DeBruijn_index.t ->
Ocaml_typing.Shape.DeBruijn_index.t ->
boolval print :
Stdlib.Format.formatter ->
Ocaml_typing.Shape.DeBruijn_index.t ->
unit