Предположим, у меня есть алгебраический тип данных:
type ('a,'b) addition =
| first of 'a
| second of 'b
Как я могу написать две функции ниже в OCaml, которые удовлетворяют сигнатурам полиморфного типа выше?
1: ('a, 'b) addition * ('a -> 'c) * ('b -> 'c) -> 'c
2: ('a, 'b * 'c) addition -> ('a, 'b) addition * ('a, 'c) addition