1) Mam otwarty związek zdefiniowany następująco:definicje typu z otwartymi związków
type 'a choice = [> `One | `Other ] as 'a
I następnie spróbuj określić typ choice_list:
type choice_list = choice list
który nie działa. W jaki sposób zdefiniować typy, w których jeden lub więcej składników jest otwartymi związkami?
2) Jeżeli zamiast tego rezygnują tworząc rodzaj choice_list
, i po prostu użyć choice list
, gdy próbuję piśmie oświadczenia interfejs/podpis przy użyciu listy wyboru,
val choice_handler : choice list -> int
kompilator narzeka, że type 'a choice = 'a constraint 'a = [> `One | `Other ] is not included in type infection_state. They have different arities
.
Moje pytanie brzmi, w jaki sposób można zapisać deklarację typu listy wyboru w interfejsie/podpisie.