Wann setzt die lockere Wertbeschränkung in OCaml ein?

Kann jemand kurz beschreiben, wann die lockere Wertbeschränkung einsetzt? Ich hatte Probleme, eine präzise und klare Beschreibung der Regeln zu finden. Es gibt Garrigue's Papier:

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

aber es ist ein wenig dicht. Kennt jemand eine markigere Quelle?

Ein Nachtrag

Einige gute Erklärungen wurden unten hinzugefügt, aber ich konnte dort keine Erklärung für das folgende Verhalten finden:

# 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>

Kann jemand das oben erläutern? Warum wirkt sich die Streudefinition eines Verweises innerhalb der RHS des Einschlusses auf die Heuristik aus?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage