code: @Override
      public Interval<C> intersect(final Interval<C> that) {
          if(this == MAGIC || that == NULL) {
              return that;
          }
          if(this == NULL) {
              return NULL;
          }
          if(that == MAGIC) {
              return new Interval(this.dimension, this.range);
          }
          
          if(this.dimension == that.dimension) {
              if(this.isConnected(that)) {
                  return new Interval(this.dimension,
                                      this.range.intersection(that.range));
              }
              return new Interval(this.dimension);
          }
          return NULL;
      }
docs: Find the intersection of two intervals.
  @param that interval
  @return intersection of this and that, which is {@link #NULL} if the two
  intervals do not overlap
  @see Range#intersection(com.google.common.collect.Range)
  @see Range#isConnected(com.google.common.collect.Range)
  @see Interval#overlaps(org.nmdp.ngs.fca.Interval)
  @see <a href="https://en.wikipedia.org/wiki/Commutative_property">
  commutative property</a>
  @see <a href="https://en.wikipedia.org/wiki/Idempotence"> idempotence</a>