| [] -> acc
;;
-let meets metasenv subst context left right =
+let meets metasenv subst context (grow_left,left) (grow_right,right) =
let saturate metasenv uo =
match uo with
| None -> metasenv, None
in
List.map
(fun (c,uo1,uo2) ->
- let metasenv, uo1 = saturate metasenv uo1 in
- let metasenv, uo2 = saturate metasenv uo2 in
+ let metasenv, uo1 =
+ if grow_left then saturate metasenv uo1 else metasenv, None in
+ let metasenv, uo2 =
+ if grow_right then saturate metasenv uo2 else metasenv, None in
c,metasenv, uo1, uo2)
(min [] (intersect (grow left) (grow right)))
;;