Попробуйте это решение и дайте мне знать, что оно работает для вас.
ALTER TABLE _secondary
ADD CONSTRAINT FK_title
FOREIGN KEY (title) REFERENCES _primary(title)
Необходимо изменить эти две строки
module Set (Elt:Ordered) : S =
module OrdInt : Ordered =
кому:
module Set (Elt:Ordered) : S with type elt = Elt.t =
module OrdInt : Ordered with type t = int =
Без них модули не будут иметь подписей, которые выставляют типы elt и t как интервал.
[Править]: set.ml не имеет 'с' битом, потому что существует sml.mli, который объявляет подпись для функтора, и это действительно имеет 'с'. Кроме того, OrdInt не нужно 'с' тем, если Вы явно не указываете подпись для него, как это:
module OrdInt =
Можно также создать набор путем определения модуля на месте:
module IntSet = Set (struct
type t = int
let lt a b = a < b
let eq a b = a = b
let leq a b = a <= b
end)