Writing other characters with similar but different types in fact helps make each type stand out. One of the best ways to emphasize the heart of gold the asshole has is to introduce an asshole without a heart of gold (and/or the “too nice” character who gets stuck in the friend zone). The easiest way to invite sympathy for a character is to write in a worse character. The easiest way to make the protagonist’s change stand out is to write a similar character who is never able to change. Characters (fictional beings that require meaningful choices) always exist in relation to each other (and the world). They may be opposite (foils) or similar except for some crucial difference (mirrors) or models of different ways of becoming (often mothers and fathers) or so on. But like a single word in a system of language, what gives a character meaning is its difference from others.