public override Int32 GetHashCode() { Int32 hash = 0; Int32 count = this.impl._mp_size; count = count >= 0 ? count : -count; unsafe { var p = (Int32*)this.impl.ptr; while (count-- > 0) { hash ^= *p; ++p; } } return hash; }