6 Stimmen

Verwendung des Moduls include in OCaml

In OCaml 3.11 möchte ich ein bestehendes Modul mit der Include-Direktive "erweitern", etwa so:

module MyString = struct
  include String
  let trim s = ...
end

Kein Problem. Aber jetzt möchte ich den Typ dieses Moduls explizit angeben (d.h. in einer .mli-Datei). Ich möchte etwas wie dies:

module MyString : sig
  include String
  val trim : string -> string
end

Aber die Include-Syntax ist nicht korrekt, weil sich String auf ein Modul und nicht auf einen Modultyp bezieht (und der Compiler kotzt tatsächlich). Wie kann ich hier auf den Modultyp für String verweisen (ohne ihn explizit in einem sig-Ausdruck ausschreiben zu müssen)?

Danke!

5voto

Pascal Cuoq Punkte 77147

OCaml 3.12 wird ein Konstrukt haben wie module type of M Ich glaube, das hätte Ihr Problem gelöst. In der Zwischenzeit können Sie den Compiler dazu bringen, die lange Signatur mit ocamlc -i . Tut mir leid, aber ich glaube, das ist das Beste, was man mit 3.11 machen kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X