I have a project structured like this :
root/
|—— dune-project
|—— lib/
| |—— dune
| |—— Readertsp.ml
| |-- ...
|
|—— bin/
| |—— dune
| |—— bin.ml
bin.ml
:
let city_config = "ch130" in
let path = Readertsp.open_path city_config in ();;
dune
:
(executable
(name MCTS_main)
(libraries graphics mcts)
)
Readertsp.ml
: https://pastebin.com/U0h69uRy
dune
:
(library
(name mcts)
(modules Readertsp)
(libraries graphics))
When I try dune build, I get this error :
File "tests/MCTS_main.ml", line 3, characters 0-19:
3 | Readertsp.open_path city_config;;
^^^^^^^^^^^^^^^^^^^
Error: Unbound module Readertsp
Do you know how to fix this ?
Got a hint on the OCaml IRC/Discord.
My problem was that to access to the open_path function, I had to use
Mcts.Readertsp.Readertsp.open_path
Because if I don't add (wrapped false)
to the dune mcts file, it puts all libraries in an only module called Mcts
. With a dune file like this :
(library
(wrapped false)
(name mcts)
(modules Readertsp)
(libraries graphics))
I can call my function like this :
Readertsp.Readertsp.open_path
As highlighted by glennsl in the comment, my last mistake is that I was creating a module inside my Readertsp.ml
file, which is already a module itself.
After deleting the module Readertsp = struct
in my Readertsp.ml
file, I can finally call
Readertsp.open_path