Я не вижу каких-либо несвязанных значений, используемых в этом коде.Какое именно сообщение об ошибке вы видите?
Существует ошибка типа, которая может привести к другим проблемам в будущем, возможно.
Ваш рекурсивный вызов contains
просто проходитодин аргумент.Но contains
ожидает два аргумента.
Обновление
Вот как выглядит несвязанная ошибка значения в OCaml (по крайней мере, обычный выпуск INRIA):
# let x = abc;;
Error: Unbound value abc
Итак, если ваше сообщение об ошибке буквально говорит «ошибка несвязанного значения», то вы пытаетесь использовать значение с именем error
, которое не определено.
На самом деле я склонен сомневаться в этом.Это действительно поможет, если вы сможете скопировать / вставить точное сообщение об ошибке.