ical equality of <code class="code">e1</code> and <code class="code">e2</code>.
   On mutable types such as references, arrays, byte sequences, records with
   mutable fields and objects with mutable instance variables,
   <code class="code">e1 == e2</code> is true if and only if physical modification of <code class="code">e1</code>
   also affects <code class="code">e2</code>.
   On non-mutable types, the behavior of <code class="code">( == )</code> is
   implementation-dependent; however, it is guaranteed