An atom in Prologs internal representation.
Atoms are pointers to an opaque structure.
The transformation of C a character string to an atom implies a hash-table lookup. If the same atom is needed often, it is advised to store its reference in a global variable to avoid repeated lookup. They are used to find the name and arity of a compound term as well as to construct new compound terms. Like atoms they live for the whole Prolog session and are unique. A module is a unique handle to a Prolog module.