function Range(start, len) {
						if (typeof start === 'object' && 'start' in start) {
							// create range from object stub
							this.start = Math.min(start.start, start.end);
							this.end = Math.max(start.start, start.end);
						} else if (Array.isArray(start)) {
							this.start = start[0];
							this.end = start[1];
						} else {
							len = typeof len === 'string' ? len.length : +len;
							this.start = start;
							this.end = start + len;
						}
					}
@type Range
@constructor
@param {Object} start
@param {Number} len