relationship with atomic accesses via the returned value (or vice-versa). * In other words, time periods where the value is accessed atomically may not overlap with periods where the value is accessed non-atomically. * This requirement is trivially satisfied if `ptr` is never used non-atomically for the duration of lifetime `'a`. Most use cases should be able to follow this guideline. * This requirement is also trivially satisfied if all accesses (atomic or not) are done from the same thread. * If this atomic type is *not* lock-free: * Any accesses to the value behind `ptr` must have a happens-before relationship with accesses via the returned value (or vice-versa). * Any concurrent accesses to the value behind `ptr` for the duration of lifetime `'a` must be compatible with operations performed by this atomic type. * This method must not be used to create overlapping or mixed-size atomic accesses, as these are not supported by the memory model. [valid]: core::ptr#safety