Added sketch for VM

DO NOT MERGE
This is just a sketch.
Please comment.
BTW<, unless we pack the enum decl with implementation specific tricks, `sizeof(enum t)` will AFAIK generally be `sizeof(int)` anyways.