pub type WideWeak<T: ?Sized, B: ?Sized = T> = Weak<Box<T>, B>;
struct WideWeak<T: ?Sized, B: ?Sized = T> { /* private fields */ }