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

Может ли кто-то дать краткое описание того, когда наступит ослабленное ограничение стоимости? Я'У нас были проблемы с нахождением краткого и ясного описания правил. Там'с Гарригас бумага:

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

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

Приложение

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

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

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

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

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