anges that represent the same set of values,
   for example the integer ranges <code class="literal">[1, 7]</code> and <code class="literal">[1,
   8)</code>, must be identical.  It doesn't matter which representation
   you choose to be the canonical one, so long as two equivalent values with
   different formattings are always mapped to the same value with the same
   formatting.  In addition to adjusting the inclusive/exclusive bounds
   format, a canonicalization function might round off boundary values