Ocaml: экспорт типа в Mli-файл - PullRequest
       2

Ocaml: экспорт типа в Mli-файл

7 голосов
/ 03 февраля 2011

У меня есть файл context.ml, в котором определена карта

module CtxMap = Map.make(struct type t = int let compare = compare end)

и функция map_get с типом CtxMap.key -> 'a CtxMap.t -> 'a

Как добавить объявление CtxMap в файл context.mli? Я не могу найти способ сделать это, так как mli-файлы не могут содержать код.

Ответы [ 2 ]

8 голосов
/ 03 февраля 2011
module CtxMap : Map.S with type key = int

В файле map.ml, поставляемом с ocaml, имя подписи для функтора: S, а key - единственный абстрактный тип, который вы хотите предоставить внешним модулям.

6 голосов
/ 03 февраля 2011

Для справки, вы всегда можете сделать:

ocamlc -i -c context.ml

, чтобы вывести файл .mli по умолчанию на стандартный вывод.Единственная проблема с этим (в вашем случае) заключается в том, что он расширяет подпись карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...