A hashability problem

Not for same entities: I want to have the ability to express different hashing for a concrete type and its existential type. For ex

protocol A: Hashable { //default impl here }
struct Beta: A, Hashable { //provide different hashing  }
//now code that wants Beta uses its hashability, 
//whilst code that expect A type, uses A's hashbility
//a bit simplified version of what I want, but correct

What do you mean by bags of syntax?

Depends on the case

Check this or this. It is true that semantic of the code might be covered from sight, but it can be mitigated with various assistance from IDE.