diff --git a/sledge/src/trm.ml b/sledge/src/trm.ml index 381ccf61b..93ad112e4 100644 --- a/sledge/src/trm.ml +++ b/sledge/src/trm.ml @@ -492,3 +492,7 @@ let iter_subtrms e ~f = | Concat xs | Record xs | Apply (_, xs) -> Array.iter ~f xs let subtrms e = Iter.from_labelled_iter (iter_subtrms e) + +(** Query *) + +let fv e = Var.Set.of_iter (vars e) diff --git a/sledge/src/trm.mli b/sledge/src/trm.mli index f9b453b6b..67120bfe0 100644 --- a/sledge/src/trm.mli +++ b/sledge/src/trm.mli @@ -95,6 +95,7 @@ val map : t -> f:(t -> t) -> t val seq_size_exn : t -> t val seq_size : t -> t option +val fv : t -> Var.Set.t (** Traverse *)