`TypeMap`: Generalizing `overload` semantics

(This is a follow-up/alternative to this proposal for associated types.)