Загрузка модуля с зависимостями в Utop

У меня два модуля A.ml а также B.ml вот так:

A.ml:

type t = int
let from_int (i : int) : t = i

B.ml:

open A
let my_t : t = from_int 0

Я могу скомпилировать их просто, вызывая ocamlc A.ml B.ml Однако я понятия не имею, как загрузить их обоих в utop для того, чтобы использовать my_t в интерактивном режиме. С помощью:

  • utop -init B.ml доходность Error: Reference to undefined global 'A'
  • utop с последующим #use "A.ml";; а также #use "B.ml";; приводит к той же ошибке
  • удаление open A от B.ml делает это в два раза #use работать, но ocamlc A.ml B.ml сейчас терпит неудачу на B с Error: Unbound type constructor t,

1 ответ

Решение

Вы должны сначала скомпилировать a.ml:

  ocamlc -c a.ml  // yields a.cmo

в утопе:

  #load "a.cmo";;
  #use "b.ml";;
Другие вопросы по тегам