C# has prefix everything (types, annotations) because it inherits the C syntax
Nim has suffix everything (types, pragmas).
Python has it mixed because ... well, they didn't think about it at the same
time, and added @ annotations as prefix and type annotations as suffix.
But there's a sort-of-precedent in nim too, which might generalize: -`func` is
`proc .... {.noSideEffecots.}` ; you could just make `aproc` or `asyncproc`
into a `proc .... {.async.}` using a macro (maybe even a template), and get
your prefix without having to modify the language.