function* modify(program, op) {
let nextOp = program.findIndex(d => d.op === op)
while (nextOp !== -1) {
const modified = program.slice()
modified[nextOp] = { ...program[nextOp], op: op === 'jmp' ? 'nop' : 'jmp' }
yield modified
nextOp = program.findIndex((d, i) => i > nextOp && d.op === op)
}
}