allpairs : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
# allpairs (fun x y -> (x,y)) [1;2;3] [4;5];; val it : (int * int) list = [(1, 4); (1, 5); (2, 4); (2, 5); (3, 4); (3, 5)]