Defines a name for a value, to allow later use. Often you may find yourself repeating the same piece of code, which is both tiresome to enter, and awkward when you need to edit it in multiple places later. By defining a name for the shared code, it's easier to reference and edit.
Another use for definitions is to do pattern matching, especially for things like
optional types; for example @define Is(x) = Column with optional type @then x @enddefine