I find this stuff difficult to follow, why does pass_left and multi_index_left need to be precomputed, can't we figure out the final pass index taking left/right into account later?