pub trait CanonicalName { fn canonical_name() -> String; }