1) que tienen una unión abierta se define de la siguiente manera:definiciones de tipo abierto con los sindicatos
type 'a choice = [> `One | `Other ] as 'a
que luego tratar de definir un tipo choice_list:
type choice_list = choice list
que no funciona. ¿Cómo se definen los tipos donde uno o más de los componentes son uniones abiertas?
2) Si en lugar de eso renunciar a la creación del tipo choice_list
, y sólo tiene que utilizar un choice list
, cuando intento escribir una declaración de interfaz/firma usando una lista de opciones,
val choice_handler : choice list -> int
el compilador se queja de que type 'a choice = 'a constraint 'a = [> `One | `Other ] is not included in type infection_state. They have different arities
.
Mi pregunta es, ¿cómo se escribe la declaración de tipo de lista de opciones en la interfaz/firma.