TypeScript, JavaScript, and PHP support an === operator, which
corresponds to strict equality (usually the equality you want). I've
added a constructor to Comparison that takes care of this. Actually
implementing non-strict equality for the above languages will have to
wait until we can build behavior a la carte.
I chose not to add Ruby's case-equality operator, though it uses ===,
since the behavior is so different. (For example, a === a is not
always true over Ruby's ===).
As @robrix pointed out, adding explicit parenthesis nodes to our ASTs
bloats them with no added gain in expressivity. A pretty-printing
solution should use something analogous to `showsPrec` to ensure that
parentheses are printed properly.