Type Classes

An expression evaluates to a value, a value has a type, and a type can be an instance of (belong to) one or more type-classes.