Слабые переменные типа обозначают типы, которые еще не определены, обычно потому, что вы определили программную переменную и никогда не использовали ее, поэтому средство проверки типов не имеет представления о том, что содержит эта переменная. В целом это нормально, поскольку первое использование переменной будет определять ее тип. Однако, поскольку вся процедура проверки типов в OCaml ограничена областью действия модуля компиляции (т. Е. Файла), такие переменные должны быть определены до того, как вы скомпилируете свой файл.
Следовательно, вы должны либо (1) использовать переменную, (2) ограничить ее каким-либо типом, например, (let getTbl : (int, int) Avltree.t array) ..
в файле реализации (.ml), либо (3) в файле mli
. Вы даже можете просто создать пустой файл .mli
(с тем же именем, что и у вас .ml-файл), и это автоматически скроет все переменные, определенные в вашем модуле, и включит компиляцию.