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