Is there any reason to import traits into a module namespace for statically dispatches instead of just apply the traits?

@kornel, thank you for your comment.

Yes. That's a very simple rule. And simplicity is important.

In the meantime, there are some inconveniences which seems to be caused by this simple rule.

For example, we need to use as when we use traits having the same name, even when the traits are used only for statically dispatches. We can find the following topic related to this on this site:

I think that nobody mentioned such topics if Rust provides a statement to enable methods of a trait for statically dispatches without importing the trait name into scope.

Another example is about uniqueness of trait names. In my understanding, it's recommended to use unique names for types in Rust (I know this is rather a general programming manner which is also applicable to other programing languages).

I agree with this, and this is more important in Rust than other languages. Because Rust requires to import traits into scope for statically dispatches. In the meantime, this recommendation decreases efficiency of module names as namespaces.

I know that there is no perfect programming language. And I just want to know fundamental philosophy in Rust for writing better code.