Dlaczego przed tym typem jest znak plus?

Przeglądałem standardową bibliotekę ocamla i natknąłem się na ten kod w pliku map.ml.

module type S =
  sig
    type key
    type +'a t
    val empty: 'a t'

Zastanawiam się, dlaczego tak jesttype +'a ti dlaczego autor go używa zamiast po prostu'a t.
Jego zachowanie jest dziwne i nie mogę wydedukować jego użycia.

# type +'a t = 'a list;;
type 'a t = 'a list
# type +'a t = +'a list;;
Characters 13-14:
  type +'a t = +'a list;;
               ^
Error: Syntax error

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion