docs: function attachTail(start, tail, hasAttached) {
  
  				var type = start[0];
  
  				var children = getChildren(start);
  				var tailChild = tail[0];
  				var tailSelector = tail[1];
  				var tailChildType = tail[2];
  
  				var hasAttached = hasAttached || {
  					child: false,
  					selector: false
  				};
  
  				if (hasAttached.child && hasAttached.selector) {
  					return hasAttached;
  				}
  
  				if (children) {
  					for (var i = children.length; i-->0;) {
  						var child = children[i];
  
  						if (child[0] === 'ExcGroup' && child[2][0]) { // has tailChild
  							child = child[2][0];
  						}
  
  						if (tailChildType === 'sibling') {
  							var cChildren = getChildren(child); 
  							if (!cChildren || !cChildren.length) {
  								// Add tailChild as sibling of child
  								children[i] = ['IncGroup', [
  									child,
  									deepCopyArray(tailChild)
  								]];
  								hasAttached.child = true; //?
  								if (type === 'IncGroup') {
  									break;
  								} else {
  									continue;
  								}
  							}
  						}
  						hasAttached = attachTail(child, tail, {
  							child: false,
  							selector: false
  						});
  						// Prevent descendants from being attached to more than one sibling
  						// e.g. a,b or a+b -- should only attach last one (i.e. b)
  						if (type === 'IncGroup' && hasAttached.child) {
  							break;
  						}
  					}
  				}
  
  				if (!hasAttached.selector) {
  					if (start[0] === 'Element') {
  						if (tailSelector) {
  							push.apply(start[1][0], tailSelector);
  						}
  						hasAttached.selector = true;
  					}
  				}
  
  				if (!hasAttached.child) {
  					if (children) {
  						if (tailChild) {
  							children.push(deepCopyArray(tailChild));
  						}
  						hasAttached.child = true;
  					}
  				}
  
  				return hasAttached;
  			}