Несогласованные предположения относительно интерфейса (Ocaml)
Я вдруг начал получать эту ошибку. Я не знаю, как его диагностировать или исправлять. Должен ли я пройти через bar.ml
и проверить каждую функцию Big_int на подпись в Big_int.mli
?
File "foo.ml", line 1, characters 0-1:
Error: The files /home/bar.cmi
and /usr/lib/ocaml/big_int.cmi make inconsistent assumptions
over interface Big_int
Ответы
Ответ 1
Как правило, это сообщение означает, что один .mli файл был недавно перекомпилирован, но не другой. Поскольку один из файлов .mli находится в вашей библиотеке OCaml, это может означать, что вы обновили свою установку OCaml, но с тех пор не перекомпилировали bar.mli.
Что произойдет, если вы просто перекомпилируете bar.mli?
Ответ 2
rm bar.cmi
и повторите попытку; похоже, что он был сгенерирован против другой версии Big_int
.