type inference value restriction references and polymorphic datatypes 2459505