Синтаксис для опции модуля - PullRequest
3 голосов
/ 19 марта 2012

Я пытаюсь создать тип с дополнительной картой:

module CharMap = Map.Make(Char)
type trie = bool * CharMap.t option

Но это приводит к синтаксической ошибке:

Error: The type constructor CharMap.t expects 1 argument(s),
       but is here applied to 0 argument(s)

Что я делаю неправильно?

1 Ответ

8 голосов
/ 19 марта 2012

CharMap.t - это карта от char до 'a, поэтому на самом деле ее тип равен 'a Charmap.t, поэтому вы забыли указать полиморфный аргумент. Поэтому вы должны написать:

type 'a trie = bool * 'a CharMap.t option

Если вы хотите, чтобы ваша карта была мономорфной (например, char -> int), вы можете просто написать:

type trie = bool * int CharMap.t option
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...