The validity invariant for bool is that it must be 0x01 or 0x00. Does AtomicBool have the same requirement, or is it allowed to contain any u8? Under the hood, it's an AtomicU8, so the current implementation doesn't have the requirement of being a valid bool, but is this part of its contract?