Ok, so what if something like this: ```rust trait AtomicOps { type Target; fn fetch_and(...); // .... } impl AtomicOps for AtomicU16 { type Target = u16; // .... } trait AtomicType { type Target: AtomicOps; } trait AtomicType { type Target = u16; } ```