У меня есть этот простой код в OCaml:
type int_pair = int * int;;
type a = A of int_pair;;
let extract (A x) = x;;
Тестирование моей функции extract
, похоже, работает:
# extract (A (1,2));;
- : int_pair = (1, 2)
Я упрощаю его, поэтому ему нужен только один тип:
type a' = A' of int * int;;
let extract' (A' x) = x;;
Но я получаю сообщение об ошибке:
Error: The constructor A' expects 2 argument(s),
but is applied here to 1 argument(s)
Самое смешное, что я могу построить значения a'
...
# A' (1,2);;
- : a' = A' (1, 2)
...Я просто не могу их разобрать. Почему?