Where does the T, U, V convention for generic type params come from?
https://news.ycombinator.com/item?id=14568309Java, C#, and TypeScript use T, U, V, etc. to represent generic type parameters. Ostensibly that's because T stands for "Type", and U and V follow T in the alphabet.
On the other hand, Scala uses A, B, C and so on, and OCaml and Haskell use a, b, and c.
Where do these conventions come from? Is it because the functional languages are closer to math proofs, where α, β, and γ are used by convention?
Does anyone know of an early mailing list, commit message, etc. where this convention was discussed?