Crystallization: a PL analogy

If caramel is disturbed while it's being made, or if the sugar has impurities, it will form crystals. This process of crystallization is something of a chain reaction, and will quickly spread to ruin the caramel.

Let's ignore that somewhat banal story of caramel for a moment, and focus on programming language design.

Imagine you're designing a type system. It's relatively simple, and you get the idea that it would be nice to