Luau parity and lighter headers
A Luau file reads in Alloy the way Luau reads it, and five Alloy forms now mean what they look like. The words trait, impl, remote, macro, attribute, namespace, private, and public are names away from their declarations. [[ ... ]] is a long string. A declaration header needs no as when its body starts on the next line. A match guard is written where. A catch-all arm counts toward an exhaustive match, a value name in a pattern reports, and in on a { } literal with items reports. An arm can run statements before its value, and return in it leaves the function. @allow also takes the rustc and Clippy names of the lints Alloy has.
