anchor.diff:  	*	@hint Converts an array of structs to a Coldfusion query. Columns are created dynamically unless a comma-delimited list of column names are provided. Column types are "varchar" unless a comma-delimited list of column types is provided. Delegates to native QueryNew().
   	*	@example _.toQuery([{someColumn: "row 1"}]); <br />=> (result is a query with one column titled "someColumn" and one row containing "row 1"
   	*/
  -	public query function toQuery(required array array, string columnNames, string columnTypes) {
  +	public query function toQuery(array array = this.obj, string columnNames, string columnTypes) {
   		if (!ArrayLen(array)) return QueryNew("");
   		if (isNull(arguments.columnNames)) {
   			var colsArray = _.reduce(arguments.array, function (memo, struct) {
  
positive.code: 				elementName = 'array';
  			else if (isQuery)
  				elementName = 'query';
  			else if (isObject(arguments.value))
  				elementName = 'object';
  			else if (isStruct(arguments.value))
  				elementName = 'struct';
  			else
  				elementName = 'element';
  
  			xmlString &= '<' & elementName & '>';
  
  			if (isSimpleValue(arguments.value) || _.isFunction(arguments.value)) {
  				xmlString &= _.result(arguments, 'value');
  			}
  			else {
  				var remainingNames = _.rest(arguments.elementNames);
  				_.each(arguments.value, function (val, key) {
  					if (!isArray && !isQuery)
  						remainingNames = _.concat([key], remainingNames);// key is el name for non-array, non-query types
  					xmlString &= toXmlString(val, remainingNames);
  
negative.code: 			return xmlString;
  		};
  		var elementNames = _.slice(arguments, 2);
  		var xmlString = toXmlString(arguments.obj, elementNames);
  		return xmlParse(xmlString);
  	}	
  
  