Я слышал, что люди иногда отделяют свои файлы .mli от своих файлов .ml (в другом каталоге), чтобы они могли скомпилировать их или без них (сообщая ocamlc, смотреть в отдельный каталог или нет).Я только что попробовал несколько экспериментов с этим.Я думаю, что это можно заставить работать, но мне кажется, что это немного ошибочно.Может быть, вы могли бы поместить тесты внутренних функций в модуль.Экспорт тестовых функций может не слишком сильно нарушать модульность.(Хотя, конечно, это загромождает модуль.)