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

Last updated