Variables often store simple data, like integers and literal strings, but some programming languages allow a variable to store values of other datatypes as well. Such languages may also enable functions to be parametric polymorphic. These functions operate like variables to represent data of multiple types. For example, a function named may determine the length of a list. Such a function may be parametric polymorphic by including a type variable in its type signature, since the number of elements in the list is independent of the elements' types.
