I wrote the code to do that, twice. It always "kinda works" but the devil is in
the details and it increases the attack surface of the compiler too much.
Consider this problem:
void a(int* x; int L);
Run
Does the `a` write into `x`? If it does, we need to write back the changes
performed to the blob `x` to the symbolic representation the VM uses.
I can only see it work reliably if the VM gets rewritten to support `blob` data
structures natively. But then it needs to keep supporting dealing with Nim's
ASTs and also needs its own version of the GC. It's tough, maybe embrace the
LLVM backend instead. :-)