He looked inquisitively at his keyboard and wrote another sentence. Type classes first appeared in the Haskell programming language. The sequential subset of Erlang supports eager evaluation, single assignment, and dynamic typing. Erlang is a general-purpose, concurrent, functional programming language. Atoms are used within a program to denote distinguished values.