W SML 3.11, chcę „przedłużyć” istniejący moduł za pomocą dyrektywy obejmują, tak jak poniżej:Korzystanie moduł to w SML
module MyString = struct
include String
let trim s = ...
end
bez problemu. Ale teraz chcę jawnie ujawnić ten typ modułu (tj. W pliku .mli). Chcę coś takiego:
module MyString : sig
include String
val trim : string -> string
end
Ale to nie jest poprawna składnia String ponieważ odnosi się do modułu, a nie typu moduł (i kompilator robi rzeczywiście barf). Jak mogę odwołać się do typu modułu dla String tutaj (bez zapisywania go jawnie w wyrażeniu sig)?
Dzięki!