Когда в OCaml вступает в действие смягченное ограничение ценностей?

Может ли кто-то дать краткое описание того, когда наступит ослабленное ограничение стоимости? Мне было трудно найти краткое и четкое описание правил. Есть бумага Гаррига:

http://caml.inria.fr/pub/papers/garrigue-value_restriction-fiwflp04.pdf

но это немного плотно Кто-нибудь знает более содержательный источник?

Приложение

Некоторые хорошие объяснения были добавлены ниже, но я не смог найти там объяснения для следующего поведения:

# let _x = 3 in (fun () -> ref None);;
- : unit -> 'a option ref = <fun>
# let _x = ref 3 in (fun () -> ref None);;
- : unit -> '_a option ref = <fun>

Кто-нибудь может уточнить выше? Почему ошибочное определение ссылки в пределах RHS вмещающей let влияет на эвристику.

Ответы на вопрос(4)

Ваш ответ на вопрос