If a dialect defines two ops, dialect.foo and dialect.foo.other, then a dialect.foo.other operation may be misinterpreted as a dialect.foo operation because, when name mangling for type overloads is in play, only a string prefix is compared.
Consider adding a marker that can unambiguously mark the end of the mnemonic, perhaps by unambiguously marking the beginning of any name mangling suffixes.