Насколько я понимаю, интерфейсы модулей/подписи подобны интерфейсам на Java. Я почему-то понимаю, почему я получил ошибку связанного конструктора, но я не уверен, что с этим делать.Ошибка конструктора Unbound
У меня есть модуль TRIE и это является частью trie.mli файла:
type ('k, 'v) trie
val empty : ('k, 'v) trie
val is_empty : ('k, 'v) trie -> bool
Это из файла test.ml:
open OUnit
open Trie
let t() =
assert_equal (is_empty (Trie(None,[]))) true;
assert_equal (is_empty (Trie(Some 7,[]))) true
Это из trie.ml файл:
type ('k, 'v) trie = Trie of 'v option * (('k * ('k, 'v) trie) list)
Ошибка несвязанного конструктора происходит из файла test.ml. Поэтому я понимаю, что интерфейс содержит только определения абстрактного модуля, поэтому я не могу использовать конструктор в .ml-файле. Поэтому я не уверен, как пройти тестирование моей реализации. Могу ли я создать новую функцию под названием create или что-то еще?
Какое имя несвязанного конструктора? Можете ли вы предоставить полное сообщение об ошибке? – ivg