This chapter use `Unique` to demonstrate how to implement a Vec. But it is permanently unstable and can only be used by std. Also in https://github.com/rust-lang/rust/blob/478464570e60523adc6d303577d1782229ca1f93/src/libcore/ptr/unique.rs#L28-L34 it recommends that we should use `NonNull` instead and consider `PhantomData<T>`.