`static: const block`
`proc ... {.compileTime.}: const proc`
I strongly disagree about these two. What's wrong with the `static` keyword? It
comes from C and that's what has always been used to signal things that should
be either included into the binary itself or be executed at compile time.
Also, you don't need to annotate a procedure with `{.compileTime.}` in order to
use it statically. For example, you can write:
import hashes
const myhash = hash("foobar")
static:
echo "Compile time: ", myhash
echo "Run time: ", myhash
Run
All you need to do is use the `const` keyword and Nim will try to run the proc
at compile-time.
On the other hand, I can understand you feeling weird about `when`, since it's
a very rarely used keyword and it has completely different semantics in C#, but
if you really want to propose a different syntax, wouldn't something like
`static if` make more sense? The keyword `const` usually refer to a value, and
`if` statements in Nim don't return values (there are `if` expressions, but
those are a different thing). But let's be honest: is `when` really a problem?
[The manual explains it very well and in a very synthetic
manner](https://nim-lang.org/docs/manual.html#statements-and-expressions-when-statement)
I don't think it would be a good thing for Nim to change its syntax to appease
every single guy who comes along.