diff --git a/sledge/src/trm.ml b/sledge/src/trm.ml index 693d035f9..f68ed9355 100644 --- a/sledge/src/trm.ml +++ b/sledge/src/trm.ml @@ -386,6 +386,15 @@ end = struct let vars e = Iter.from_labelled_iter (iter_vars e) end +module T = struct + type t = Trm.t [@@deriving compare, sexp] +end + +module Map = struct + include Map.Make (T) + include Provide_of_sexp (T) +end + type arith = Arith.t include Trm diff --git a/sledge/src/trm.mli b/sledge/src/trm.mli index 5fd7dcafe..745e53ea6 100644 --- a/sledge/src/trm.mli +++ b/sledge/src/trm.mli @@ -41,6 +41,12 @@ end module Arith : Arithmetic.S with type var := Var.t with type trm := t with type t = arith +module Map : sig + include Map.S with type key := t + + val t_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a t +end + val ppx : Var.strength -> t pp val pp : t pp val pp_diff : (t * t) pp