Описание тега value-restriction
In functional programming, in particular the ML programming language family, the value restriction means that declarations are only polymorphically generalized if they are syntactic values (also called non-expansive).
In functional programming, in particular the ML programming language family, the value restriction means that declarations are only polymorphically generalized if they are syntactic values (also called non-expansive). The value restriction prevents reference cells from holding values of different types and preserves type safety.
Some interesting notes on value restriction
http://users.cis.fiu.edu/~smithg/cop4555/valrestr.html
http://en.wikipedia.org/wiki/Value_restriction