The Free On-line Dictionary of Computing (30 December 2018):
parametric polymorphism
   Polymorphism was first identified by Christopher Strachey in
   1967 and developed by Hindley and Milner.
   For example we could specify that the argument of the "head"
   function was a list without specifying a type for the elements
   of the list.  In Haskell we would write:
   	head :: [a] -> a
   meaning head has type function from "list of a" to "a" where "a"
   is a type variable).  This is known as parametric polymorphism.
   Polymorphic typing allows strong type checking as well as generic
   functions.  ML in 1976 was the first language with polymorphic
   typing.
   See also generic type variable.
   (2014-01-05)