pub fn unpack_overwrite<'v>(&'v self) -> Either<usize, &'v dyn AValue<'v>> {
        let x = unsafe { *(self as *const AValuePtr as *const usize) };
        if x & 1 == 1 {
            Either::Left(x & !1)
        } else {
            Either::Right(self.unpack())
        }
    }
/// Unpack something that might have been overwritten.
Unpack something that might have been overwritten.
Unpack something that might have been overwritten .
pub fn unpack_overwrite<'v>(&'v self) -> Either<usize, &'v dyn AValue<'v>> {
        let x = unsafe { *(self as *const AValuePtr as *const usize) };
        if x & 1 == 1 {
            Either::Left(x & !1)
        } else {
            Either::Right(self.unpack())
        }
    }
pub fn unpack_overwrite < ' v > ( & ' v self ) -> Either < usize , & ' v dyn AValue < ' v > > { let x = unsafe { * ( self as * const AValuePtr as * const usize ) } ; if x & 1 == 1 { Either :: Left ( x & ! 1 ) } else { Either :: Right ( self . unpack ( ) ) } }
Unpack something that might have been overwritten.
Unpack something that might have been overwritten .
&'v self
&'v self