Параметрический полиморфизм в Окамле - PullRequest
0 голосов
/ 08 ноября 2018

Предположим, у меня есть алгебраический тип данных:

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
...