~<#56964#>This section is as much about the connection between philosophy and computing as it is about programming. Students often figure out the basic idea, that there are two notions of equality, on their own during the discussion of structure or vector mutation. If so, this section can be skipped.<#56964#>
As we mutate structures or vectors, we use words such as ``the vector now
contains <#69992#><#56965#>false<#56965#><#69992#> in its first field'' to describe what
happens. Behind those words is the idea that the vector stays the
same---even though it changes. What this observation suggests is that there
are really two notions of equality: the one we have used so far and a new
one based on effects on a structure or vector. Understanding these two
notions of equality is critically important for a programmer. We therefore
discuss them in detail in the following two subsections.