I wonder if putting `.cond` at the same offset for both `MutexGuard` and `RWLockWriteGuard` will allow LLVM to optimise this to be just a pointer offset (i.e. no need to branch at all).

I imagine this is not a performance hotspot at all, though.