@ker the problem is that this trait is not particularly useful, because if I want to be generic over Rc and Arc, it’s usually using internal implementation details. So e.g. I want to be generic over Rc<SecretNodeType> and Arc<SecretNodeType>, and there’s no way for a user of my interface to feed in Smaht<SecretNodeType> short of me making it public (and that’s awful(. What I want is to accept a Smaht<*>, that I can monomorphize with undeclared, and indeed multiple types. This is Higher Kinded Types, which is unlikely to happen for a long while.