rev_itlist2 : ('a -> 'b -> 'c -> 'c) -> 'a list -> 'b list -> 'c -> 'c
f xn yn (f xn-1 yn-1 ... (f x1 y1 z)...)
- rev_itlist2 (fn x => fn y => cons (x,y)) [1,2] [3,4] []; > val it = [(2, 4), (1, 3)] : (int * int) list