Я новичок в OCaml Module, и мне не удалось использовать свой собственный модуль, не объединяя "include" и "open". Я попытался поместить подпись в отдельный файл .mli без успеха.
Ниже показан минимальный (не) рабочий пример, который я пытаюсь скомпилировать с помощью
ocamlc -o main Robot.ml main.ml
Что мне нужно сделать, чтобы использовать только "open" или только "include", но не оба из них?
Файл "Robot.ml":
module type RobotSignature =
sig
val top: unit -> unit
end
module Robot =
struct
let top () =
begin
Printf.printf "top\n"
end
(* Should not be visible from the 'main' *)
let dummy () =
begin
Printf.printf "dummy\n"
end
end
Файл "main.ml" (не работает):
open Robot;;
top();
Файл "main.ml" (рабочий):
include Robot;;
open Robot;;
top();