Strachey (1967)
"Parametric [true] polymorphism is obtained when a function works uniformly on a range of types; these types normally exhibit some common structure
“Ad-hoc polymorphism is obtained when a function works, or appears to work, on several different types (which may not exhibit a common structure) and may behave in unrelated ways for each type”