I don’t like the naming “transpose” too much, because it glosses over the (potentially significant) side-effect that this operation unlocks the RefCell in the None case, wheras AFAIR other “transpose” methods are usually side-effect-free conversions between essentially equivalent alternatives. (I have not searched for “all the ‘transpose’s” though, so feel free to point me to more wild existing examples.)