// A BODIED `abi(.compiler)` function is a compiler-domain function: the comptime
// evaluator runs its sx body, but it is NEVER lowered into the shipped binary
// (emit_llvm skips it, like an extern). Here `double` folds the `#run` const at
// compile time; `main` only ever sees the folded constant, and no `double` symbol
// exists in the binary. (Regression for the S3 step of the abi(.compiler) work —
// see current/PLAN-COMPILER-VM.md.)

#import "modules/std.sx";

double :: (x: i64) -> i64 abi(.compiler) { x * 2 }

answer :: #run double(42);

main :: () {
    print("answer = {}\n", answer);
}
