let rec iter2i_exn xs ys ~f =
match peek xs, peek ys with
| Some x, Some y -> (
f (count xs) (count ys) x y;
junk xs ;
junk ys ;
iter2i_exn xs ys ~f
)
| None, None -> ()
| _, _ -> raise Expected_streams_of_equal_length