Определения типов с открытыми объединениями

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. У них разная арность .

У меня вопрос, как написать объявление типа списка выбора в интерфейсе / сигнатуре.

5
задан nlucaroni 2 November 2011 в 20:31
поделиться