В OCaml 3.11 я хочу «расширить» существующий модуль с помощью директивы include, например:
module MyString = struct
include String
let trim s = ...
end
Нет проблем. Но теперь я хочу явно указать тип этого модуля (то есть в файле .mli). Я хочу что-то вроде этого:
module MyString : sig
include String
val trim : string -> string
end
Но синтаксис include не корректен, потому что String ссылается на модуль, а не на тип модуля (а компилятор действительно делает barf). Как я могу ссылаться на тип модуля для String здесь (без явной записи в выражении sig)?
Спасибо!