Я новичок в модуле OCaml, и мне не удалось использовать свой собственный модуль, не сочетая «включить» и «открыть». Я безуспешно пытался поместить подпись в отдельный файл .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();