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. The value restriction prevents reference cells from holding values of different types and preserves type safety.