>> The biggest inconvenience with .mli files as I see it is that I have
>> to repeat myself and make related but slightly different changes in
>> two places when I change a module implementation. I would very much
>> prefer to declare and document public interfaces next to the
>> implementation and have language tooling take care of separate
>> compilation and documentation generation.
>
>
> ocamlc -i
> is your friend...
"ocamlc -i" is useful, but it can't distinguish between public and
private interfaces and it wouldn't be helpful for generating
documentation.