A Lisp object is a piece of data used and manipulated by Lisp programs. For our purposes, a type or data type is a set of possible objects. Every object belongs to at least one type. Objects of the same type have similar structures and may usually be used in the same contexts.
Types can overlap, and objects can belong to two or more types.
A few fundamental object types are built into Emacs. These, from which all other types are constructed, are called primitive types . Each object belongs to one and only one primitive type. These types include integer , float , cons , symbol , string , vector , subr , byte-code function , and several special types, such as buffer , that are related to editing. Each primitive type has a corresponding Lisp function that checks whether an object is a member of that type.