In rust, it is possible to have a value, a type and a macro with the same name without conflicts.
PerNs (per namespace) captures this.
PerNs