Auras are types of atoms. A generic atom (
@) is a non-negative decimal integer. Auras allow such atoms to be defined more specifically, such as
@t for little-endian UTF-8 strings,
@ux for hexadecimal and
@p for a ship name like
~sampel-palnet. Auras do three things:
- Define type nesting logic, such that
- Let the pretty-printer know how to print the values, so a
- Define literal syntaxes for the various auras, so the parser/compiler can understand them.
Note that auras do not enforce the validity of an encoding scheme, so you can type-cast the
! not being allowed in an
@ta literal. They are ultimately just metadata given to compiler.