В окамле функцию с двумя аргументами можно определить как
( 'a -> 'b -> 'c ) или же как ( 'a * 'b -> 'c ), и особой разницы между
этими способами нет.
В каких случаях один из способов может быть предпочтительнее?
(если не беспокоиться об эффективности байткод-интерпретатора)
Единственное что приходит в голову, это если я хочу написать
что-нибудь вроде map f (zip list_a list_b),
где zip устроен как в питоне (zip : 'a list -> 'b list -> 'a*'b list).
Но на такой случай предусмотрено List.map2