You may be interested in this PR which did very similar thing (but more ambitious), but was decided against after all.
As for type bool = bool;, there’s a simple workaround
mod detail {
pub type __bool = bool;
}
type bool = detail::__bool;
, so a module with primitive types can be added to the standard library. It would be useful in situation where a primitive type needs to be addressed by an absolute name, like here.