I’d like to highlight a new toplevel feature introduced in the recently released dune 3.6.0. We have the new top-module
subcommand for loading modules without hiding their interface behind their mli. This means that the following:
$ utop
# #use_output "dune ocaml top-module path/to/module.ml";;
Will allow you to inspect Module
as if module.mli
was absent.
The inspiration for this feature is of course the REPL driven development environments that are so common in Lisps. Obviously, we’re still pretty far from catching up to Lisp in this regard, but I’m already quite happy with this small improvement. I look forward to adding more features to dune to support this style of development in the future.