У меня есть размеченное объединение с выбором, который имеет другой тип du в качестве своего типа, как показано ниже:
type DunionSubset =
| X
| Y
type Dunion =
| A
| B
| C of DunionSubset
Я хочу создать отображение в список строк для типа Dunion
, который естественным образом расширяется до C
и, следовательно, DunionSubset
Когда я неправильно использую as для присвоения псевдонима конструктору следующим образом:
let MappingsOfC = function
| X -> ["x"]
| Y -> ["y"]
let StringMappings = function
| A -> ["a";"A"]
| B -> []
| C as c -> (MappingsOfC c)
, компилятор дает мне:
[FS0019] This constructor is applied to 0 argument(s) but expects 1
Как именно неправильное использование мной вышеуказанного приводит к этой ошибке компилятора? Интересно, что ошибка компилятора находится в месте C
, а не в моем использовании c
в MappingsOfC c
, хотя Rider ide подчеркивает c
и выдает другую ошибку.