pub(super) fn choose_opcode_selector(pass: Pass, sub_cycle: SubCycle) -> OpcodeSelector {
pub(crate) fn generate_program(&mut self, output: &mut InstructionVec) -> Result<(), Error> {
fn instruction_gen_attempt(&mut self, pass: Pass) -> Result<(Instruction, RegisterWriter), ()> {