use std::any::Any; use std::any::TypeId; trait Private { fn call(&self, p: P, r: R); } pub trait Public: Private< //~^ ERROR private trait `Private<::P, ::R>` in public interface ::P, ::R > { type P; type R; fn call_inner(&self); } fn main() {}