1) У меня есть открытое объединение, определенное следующим образом:
type 'a choice = [> `One | `Other ] as 'a
Затем я пытаюсь определить тип choice_list:
type choice_list = choice list
, который не работает. Как определить типы, в которых один или несколько компонентов являются открытыми объединениями?
2) Если вместо этого я откажусь от создания типа choice_list
и просто буду использовать список выбора
, когда Я пытаюсь написать оператор интерфейса / подписи, используя список выбора,
val choice_handler : choice list -> int
компилятор жалуется, что набирает 'выбор =' ограничение 'a = [> `One | `Other] не входит в тип заражения_state. У них разная арность
.
У меня вопрос, как написать объявление типа списка выбора в интерфейсе / сигнатуре.