&gt; if you decide you are going to design a language where types are always coerced to perform operations instead of stopping execution when mismatched types are encountered<p>Realistically, you&#x27;ve stop being sensible at this point.<p>If you insist on going that route, you&#x27;ll need to define stuff like addition between an object and an array, and there is just no good way to do that.<p>Making your failure modes safe is a sensible choice. Attributing semantics to any character permutation a developer may throw at your compiler is not.