Std.Atom
View source →The primitive interned symbol.
Atom is an irreducible BEAM atom — not an inductive, not a postulate. Its
introduction forms are symbol literals (:ok, :error, :millisecond),
which the elaborator lowers to {:atom_lit, a}; on the BEAM an atom is its
own value, so == compares them natively. This module gives the type itself
a visible, documented home, mirroring Std.Int/Std.Float/Std.Binary.
Atom is an interoperability and reflection primitive, not Cure's default
spelling for a closed vocabulary. Prefer an ordinary data type for states,
events, options, results, modes, and domain errors; its constructors can be
encoded at the private BEAM boundary. Raw atoms remain appropriate for
foreign module/name identities, open Erlang protocols, syntax literals, and
explicitly unsafe operations.