Compilação separada de módulos OCaml

eu liessa questão e outros, mas meu problema de compilação não foi resolvido.

Estou testando a compilação separada com esses arquivos:

testmoda.ml

module Testmoda = struct
  let greeter () = print_endline "greetings from module a"
end

testmodb.ml

module Testmodb = struct
  let dogreet () = print_endline "Modul B:"; Testmoda.greeter ()
end

testmod.ml

let main () =
  print_endline "Calling modules now...";
  Testmoda.greeter ();
  Testmodb.dogreet (); 
  print_endline "End."
;;
let _ = main ()

Agora eu gero o arquivo .mli

ocamlc -c -i testmoda.ml >testmoda.mli

e o testmoda.cmi está lá.

Em seguida, crio o arquivo .cmo sem erros:

ocamlc -c testmoda.ml

Tudo bem, faça o mesmo com testmodb.ml:

strobel@s131-amd:~/Ocaml/ml/testmod> ocamlc -c -i testmodb.ml >testmodb.mli
File "testmodb.ml", line 3, characters 45-61:
Error: Unbound value Testmoda.greeter

Outra tentativa:

strobel@s131-amd:~/Ocaml/ml/testmod> ocamlc -c testmoda.cmo testmodb.ml
File "testmodb.ml", line 3, characters 45-61:
Error: Unbound value Testmoda.greeter

Outras combinações também falharam.

Como compilar testmodb.ml e testmod.ml? Isso deve ser fácil - sem ocamlbuild / omake / oasis, eu acho.

Os erros de sintaxe nos arquivos são excluídos. Se eu agrupá-los em um arquivo (com o espaço necessário entre eles), ele compila e executa perfeitamente.

questionAnswers(1)

yourAnswerToTheQuestion