-- same as above but all at once (right is done first) (id applied last)
teleportGates r0 r1 = foldl1 (.) [ zgateM 2 0, xgateM 2 1, meas 1 r1, meas 0 r0, hgate 0, cnot 1 0]
teleportGates r0 r1 = foldl1 (.) [ zgateM 2 0, xgateM 2 1, meas 1 r1, meas 0 r0, hgate 0, cnot 1 0]
teleportGates r0 r1 = foldl1 (.) [ zgateM 2 0, xgateM 2 1, meas 1 r1, meas 0 r0, hgate 0, cnot 1 0]