Подводя итог: несколько мелких деталей, которые все вместе сговорились против вас: -)
Во-первых, как упоминалось ранее, вам нужно загрузить код на верхний уровень либо с #use "testmodule.ml";;
для исходных файлов, либо с #load "testmodule.cmo";;
для скомпилированных файлов или использовать ocamlmktop
.Это объясняет, почему ваша первая попытка не сработала: вы не загрузили код.
Во-вторых, вы определили module TestModule
в файле с именем testmodule.ml
.Имейте в виду, что файл определяет свой собственный модуль на основе своего имени.Итак, чтобы получить доступ к вашему модулю, вам нужно написать Testmodule.TestModule
.Это объясняет, почему ваша вторая попытка не сработала: код был загружен, но имел неожиданное имя.
Возможно, вы захотите удалить определение TestModule
и переименовать файл в testModule.ml
(или, возможно, более идиоматическийtest_module.ml
).