Three questions of language design

There seem to be three interesting questions when I look at a new (mainstream/practical) programming language:

  1. How does it deal with equality/ordering?
  2. How does it deal with arithmetic and operators for the arithmetic?
  3. How does it handle errors?

The typical answers in reply are (1) inconsistently, (2) it’s magic, (3) at least two, incompatible, ways.