In
programming language design, a
first-class citizen (also
type,
object,
entity, or
value) in a given
programming language is an entity which supports all the operations generally available to other entities. These operations typically include being passed as an argument, returned from a function, and assigned to a variable.