2012-03-19 27 views
3

我試圖與一個可選的地圖類型:語法模塊選件

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) 

我在做什麼錯?

回答

8

CharMap.t是地圖從char'a,所以實際上它的類型是'a Charmap.t,讓你忘記指定多態性的說法。所以,你應該寫:

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

如果你希望你的地圖是單態(例如char -> int),你可以這樣寫:

type trie = bool * int CharMap.t option 
+0

有沒有辦法對我來說,指定什麼「一個必須是? – 2012-03-19 16:28:25

+0

我已經更新了我的答案 – Thomas 2012-03-19 16:59:24