An entity that supports all operations available to all other entities. Able to be passed as an argument Able to be returned from a function Able to be assigned to a variable