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)