            Mod(Reg(r), op) => { regs[r] %= get_val(&regs, op) },
            Rcv(_) => { return freq },
            Jgz(op1, op2) => { if get_val(&regs, op1) > 0 { new_pc = pc + get_val(&regs, op2); }; },
            _ => panic!(),
        }
        pc = new_pc;
    }
}

struct Thread<'a> {