code: public Include withType(String theResourceType) {
  		StringBuilder b = new StringBuilder();
  		
  		String paramType = getParamType();
  		String paramName = getParamName();
  		if (isBlank(paramType) || isBlank(paramName)) {
  			throw new IllegalStateException("This include does not contain a value in the format [ResourceType]:[paramName]");
  		}
  		b.append(paramType);
  		b.append(":");
  		b.append(paramName);
  		
  		if (isNotBlank(theResourceType)) {
  			b.append(':');
  			b.append(theResourceType);
  		}
  		Include retVal = new Include(b.toString(), myRecurse, myImmutable);
  		return retVal;
  	}
docs: Creates and returns a new copy of this Include with the given type. The following table shows what will be
  returned:
  <table>
  <tr>
  <th>Initial Contents</th>
  <th>theResourceType</th>
  <th>Output</th>
  </tr>
  <tr>
  <td>Patient:careProvider</th>
  <th>Organization</th>
  <th>Patient:careProvider:Organization</th>
  </tr>
  <tr>
  <td>Patient:careProvider:Practitioner</th>
  <th>Organization</th>
  <th>Patient:careProvider:Organization</th>
  </tr>
  <tr>
  <td>Patient</th>
  <th>(any)</th>
  <th>{@link IllegalStateException}</th>
  </tr>
  </table>
  
  @param theResourceType
  The resource type (e.g. "Organization")
  @return A new copy of the include. Note that if this include is {@link #toLocked() locked}, the returned include
  will be too