pub trait Modules<T>: Query<ModuleIdentifier, T>where T: Module,{ }
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".