sig
val fold : (Term.term -> 'a -> 'a) -> Term.term -> 'a -> 'a
val find : (Term.term -> bool) -> Term.term -> Term.term
val find_opt : (Term.term -> 'a option) -> Term.term -> 'a option
val exists : (Term.term -> bool) -> Term.term -> bool
type position = int list
val subterm_pos : Term.term -> Subterm.position -> Term.term
val replace : Term.term -> Subterm.position -> Term.term -> Term.term
val foldi :
(Term.term -> Subterm.position -> 'a -> 'a) -> Term.term -> 'a -> 'a
val findi :
(Term.term -> Subterm.position -> bool) ->
Term.term -> Term.term * Subterm.position
val find_opti :
(Term.term -> Subterm.position -> 'a option) ->
Term.term -> ('a * Subterm.position) option
val existsi : (Term.term -> Subterm.position -> bool) -> Term.term -> bool
end