type inference value restriction references and polymorphic datatypes 2310564