pub trait ApplyModule<M>where M: Module<Input = Self>,{ // Provided method fn apply(&self, module: M) -> M::Output { ... } }