Matching.Exits
Each "exit" is given a key which we can use to look up the AST nodes to follow after the tree. We use keys because exits can be copied when trees merge, and we don't want to duplicate entire trees.
type key = int
type 'a exit = {
id : key;
bindings : string list;
nodes : 'a;
}
type 'a t
A sequence of exits.
val map : ('a -> 'b) -> 'a t -> 'b t
val binding_exists : _ t -> bool
val nodes : 'a t -> 'a Stdlib.Seq.t
val to_nonempty : 'a t -> 'a exit Nonempty.t