macro_rules! impl_write_smart_pointer { ($ty:path, T: $extra_bound:path) => { ... }; ($ty:path) => { ... }; }