В настоящее время я использую функтор Map для создания строковой карты: module StringMap = Map.Make(String)
.
Затем я пытаюсь вставить набор сопоставлений строк в список 'a
объектов в StringMap. чтобы проверить, существует ли ключ, я делаю следующее:
match StringMap.find_opt key my_map with
| None -> StringMap.add key [child] my_map
| Some l -> StringMap.add key (child::l) my_map
Однако при компиляции появляется сообщение о том, что привязка для find_opt
имеет несвязанное значение, даже если оно определено в подписи: https://ocaml.org/learn/tutorials/map.html.
Я также пытался использовать StringMap.mem key my_map
, но получаю следующую ошибку:
Error: This expression has type string but an expression was expected of type
'a StringMap.t =
(StringMap.Key.t, 'a, StringMap.Key.comparator_witness)
Base__Map.t
Я оглянулся вокруг, чтобы увидеть, есть ли ошибка при наборе текста или что-то еще, но я ничего не смог найти. Есть идеи, почему я получаю одну из этих ошибок?