This module implements zippers over first-order terms.
For advanced users: as an extension over plain zippers, the module also allows to edit a term lazily applied to a substitution. In plain words, the variables contained in terms may point to other terms, specified by a substitution provided at zipper creation time. One can then navigate and edit the induced graph in a purely applicative fashion.
type term
The type of terms.
type t
The type of zippers.
type'a with_state
For plain zippers, 'a with_state = 'a. When doing term graph edition, this type encapsulates the underlying substitution.
move_at z i is the zipper obtained by moving at the index i.
For experienced users/experimental: when doing term graph edition, in the case where cursor z is a variable in the domain of the underlying substitution, move_at z i will silently perform a deref before moving at the index i of the obtained term.