code: function(range) {
      return new Range(
        this.start < range.start ? this.start : range.start,
        this.end   > range.end   ? this.end   : range.end
      );
    }
docs: *
  @method union(range)
  @returns Range
  @short Returns a new range with the earliest starting point as its start,
  and the latest ending point as its end. If the two ranges do not
  intersect this will effectively remove the "gap" between them.
  
  @example
  
  oneToTen.union(fiveToTwenty) -> 1..20
  janToMay.union(marToAug)     -> Jan 1, xxxx..Aug 1, xxxx
  
  @param {Range} range
  
  *