Когда вы определяете тип варианта, такой как mlvalue
, вы определяете конструкторы для значений типа. У вас есть конструктор с именем Ml1
, который принимает int
и создает значение. И у вас есть конструктор с именем Ml2
, который принимает два int
с и создает значение.
Чтобы сделать значение типа, вам нужно включить конструктор.
Кроме того, тип вашего accu
не может быть mlvalue
. Это должно быть mlvalue ref
, это другой тип.
let accu : mlvalue ref = ref (Ml1 0)
(Обратите внимание, что вам не нужно указывать тип accu
. OCaml определит тип для вас.)