\ / This software is distributed as is, NO WARRANTY.
V_______________________________________________________________ *)
-let empty_subst = [];;
-
-let buildsubst n t tail = (n,t) :: tail ;;
-
-let rec lookup_subst var subst =
- match var with
- | Terms.Var i ->
- (try
- lookup_subst (List.assoc i subst) subst
- with
- Not_found -> var)
- | _ -> var
-;;
-
-let is_in_subst i subst = List.mem_assoc i subst;;
-
-(* filter out from metasenv the variables in substs *)
-let filter subst varlist =
- List.filter
- (fun m ->
- not (is_in_subst m subst))
- varlist
-;;
+module Subst (B : Terms.Blob) = struct
+
+ let empty_subst = [];;
+
+ let buildsubst n t tail = (n,t) :: tail ;;
+
+ let rec lookup_subst var subst =
+ match var with
+ | Terms.Var i ->
+ (try
+ lookup_subst (List.assoc i subst) subst
+ with
+ Not_found -> var)
+ | _ -> var
+ ;;
+
+ let is_in_subst i subst = List.mem_assoc i subst;;
+
+ (* filter out from metasenv the variables in substs *)
+ let filter subst varlist =
+ List.filter
+ (fun m ->
+ not (is_in_subst m subst))
+ varlist
+ ;;
+
+end