@@ -89,10 +89,6 @@ module IntDomTupleImpl = struct
8989 let create2_ovc ?(suppress_ovwarn = false ) ik r x = (* use where values are introduced *)
9090 create2_ovc ~suppress_ovwarn ik r x (int_precision_from_node_or_config () )
9191
92-
93- let opt_map2 f =
94- curry @@ function Some x , Some y -> Some (f x y) | _ -> None
95-
9692 let to_list (a ,b ,c ,d ,e ,f ) = List. filter_map identity [a;b;c;d;e;f] (* contains only the values of activated domains *)
9793 let to_list_some x = List. filter_map identity @@ to_list x (* contains only the Some-values of activated domains *)
9894
@@ -210,12 +206,12 @@ module IntDomTupleImpl = struct
210206 let is_excl_list = exists % mapp { fp = fun (type a ) (module I:SOverflow with type t = a ) -> I. is_excl_list }
211207
212208 let map2p r (xa , xb , xc , xd , xe , xf ) (ya , yb , yc , yd , ye , yf ) =
213- ( opt_map2 (r.f2p (module I1 )) xa ya
214- , opt_map2 (r.f2p (module I2 )) xb yb
215- , opt_map2 (r.f2p (module I3 )) xc yc
216- , opt_map2 (r.f2p (module I4 )) xd yd
217- , opt_map2 (r.f2p (module I5 )) xe ye
218- , opt_map2 (r.f2p (module I6 )) xf yf)
209+ ( GobOption. map2 (r.f2p (module I1 )) xa ya
210+ , GobOption. map2 (r.f2p (module I2 )) xb yb
211+ , GobOption. map2 (r.f2p (module I3 )) xc yc
212+ , GobOption. map2 (r.f2p (module I4 )) xd yd
213+ , GobOption. map2 (r.f2p (module I5 )) xe ye
214+ , GobOption. map2 (r.f2p (module I6 )) xf yf)
219215
220216 (* f2p: binary projections *)
221217 let (%%) f g x = f % (g x) (* composition for binary function g *)
@@ -318,16 +314,16 @@ module IntDomTupleImpl = struct
318314
319315 (* map2 with overflow check *)
320316 let map2ovc ~op ik r (xa , xb , xc , xd , xe , xf ) (ya , yb , yc , yd , ye , yf ) =
321- let intv = opt_map2 (r.f2_ovc (module I2 )) xb yb in
322- let intv_set = opt_map2 (r.f2_ovc (module I5 )) xe ye in
323- let bf = opt_map2 (r.f2_ovc (module I6 )) xf yf in
317+ let intv = GobOption. map2 (r.f2_ovc (module I2 )) xb yb in
318+ let intv_set = GobOption. map2 (r.f2_ovc (module I5 )) xe ye in
319+ let bf = GobOption. map2 (r.f2_ovc (module I6 )) xf yf in
324320 let no_ov = check_ov ~op ik intv intv_set bf in
325321 let no_ov = no_ov || should_ignore_overflow ik in
326322 refine ik
327- ( opt_map2 (fun x y -> r.f2_ovc (module I1 ) x y |> fst) xa ya (* TODO: why isn't no_ov passed? *)
323+ ( GobOption. map2 (fun x y -> r.f2_ovc (module I1 ) x y |> fst) xa ya (* TODO: why isn't no_ov passed? *)
328324 , BatOption. map fst intv
329- , opt_map2 (fun x y -> r.f2_ovc (module I3 ) x y |> fst) xc yc (* TODO: why isn't no_ov passed? *)
330- , opt_map2 (fun x y -> r.f2_ovc ~no_ov (module I4 ) x y |> fst) xd yd
325+ , GobOption. map2 (fun x y -> r.f2_ovc (module I3 ) x y |> fst) xc yc (* TODO: why isn't no_ov passed? *)
326+ , GobOption. map2 (fun x y -> r.f2_ovc ~no_ov (module I4 ) x y |> fst) xd yd
331327 , BatOption. map fst intv_set
332328 , BatOption. map fst bf)
333329
@@ -343,12 +339,12 @@ module IntDomTupleImpl = struct
343339
344340 let map2 ?(norefine =false ) ik r (xa , xb , xc , xd , xe , xf ) (ya , yb , yc , yd , ye , yf ) =
345341 let r =
346- ( opt_map2 (r.f2 (module I1 )) xa ya
347- , opt_map2 (r.f2 (module I2 )) xb yb
348- , opt_map2 (r.f2 (module I3 )) xc yc
349- , opt_map2 (r.f2 (module I4 )) xd yd
350- , opt_map2 (r.f2 (module I5 )) xe ye
351- , opt_map2 (r.f2 (module I6 )) xf yf)
342+ ( GobOption. map2 (r.f2 (module I1 )) xa ya
343+ , GobOption. map2 (r.f2 (module I2 )) xb yb
344+ , GobOption. map2 (r.f2 (module I3 )) xc yc
345+ , GobOption. map2 (r.f2 (module I4 )) xd yd
346+ , GobOption. map2 (r.f2 (module I5 )) xe ye
347+ , GobOption. map2 (r.f2 (module I6 )) xf yf)
352348 in
353349 if norefine then r else refine ik r
354350
0 commit comments