Expressions

Structures

A structure literal consists of the structure path followed by the body. The trailing list separator is optional.

module::Structure:
field: expression,

If the body is on the same line, it will be terminated by a line break instead of a block close.

Structure: field: expression,

Nested structure or block fields do not terminate in a list separator.

Structure:
nested: Nested:
field: expression,
other:
expression

A nested structure can be on the same line only if it is the last field in the structure.

Structure: field: Nested: field: expression,

If the expression is omitted, the field will consume the variable with the same name in its scope.

let variable = expression
Structure: variable,

Fields

The field of a structure is accessed with a dot.

structure.field

Structure fields can be mutated.

structure.field = expression