Comments: # this is a line comment. No block comments. A run of # comment lines directly above an item (no blank line between) is that item's documentation comment, and a fenced ` Hanki block inside it is a runnable example — see §20.
File extension: .hk. One file = one module.
Identifiers: ASCII [A-Za-z_][A-Za-z0-9_]*, optionally followed by a single ! or ? suffix.
foo! - by convention an action (effectful function). The ! is part of the name.
foo? - by convention a predicate (returns bool).
Keywords: def actor on state match if else elif end then var type struct opaque impl trait throw try catch spawn async await move loop do break continue return use open meta true false self and or not where effect provide test.
Whitespace: spaces and tabs are insignificant. Newlines terminate statements.
Line continuation: end a line with \ to continue on the next.
String literals: "…" with \n \t \r \\ \" \0 \# escapes and #{expr} interpolation.