Если у вас есть модули, подобные следующим:
module Util
...
end;;
module Work2
open Util
...
end;;
module Main
open Util;;
open Work2;;
...
end;;
Module Work1
open Work2;;
...
end;;
тогда порядок должен быть таким, что когда каждый модуль вызывает open, он обнаруживает, что открытый модуль уже является компилятором, в приведенном выше примере порядок будет
Util -> Work2 -> Work1 -> Main
Обратите внимание, что OCaml не поддерживает циклическое резервирование для модулей, что означает, что вы не можете иметь
module Work1
open Work2;;
end;;
module Work2
open Work1;;
end;;
если ваше приложение немного сложное с большим количеством модулей, вы можете использовать Ocamldep http://caml.inria.fr/pub/docs/manual-ocaml/manual027.html, и оно определит зависимость от графика для вас.