let combine ~old l =
(* Remove double elements. *)
let rec aux acc l1 l2 =
match l1, l2 with
| l, [] | [], l ->
List.rev l @ acc
| hd1 :: tl1, hd2 :: tl2 ->
if (hd1:leak) == hd2 then
aux (hd1 :: acc) tl1 tl2
else
List.rev l2 @ List.rev l1 @ acc
in
aux [] (List.rev old) (List.rev l)