sig
val swap_variable : string -> string -> Lang.expression -> Lang.expression
exception TraversalError
val flatten : Lang.expression list -> Lang.expression list
val num_exprs : Lang.expression list -> int
val traverse : Lang.expression list -> int -> Lang.expression
type replace_opts = {
expr : Lang.expression;
desired : Lang.expression;
pos : int;
}
val replace : Transform.replace_opts -> Lang.expression
type abstract_opts = { expr : Lang.expression; name : string; pos : int; }
val abstract : Transform.abstract_opts -> Lang.expression
end