Загрузка модуля с зависимостями в 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";;