docs: function isListLike( list ) {
  	var symbolValue,
  		type = typeof list;
  	if(type === "string") {
  		return true;
  	}
  	if( isPrimitive(list) ) {
  		return false;
  	}
  	symbolValue = list[canSymbol.for("can.isListLike")];
  	if( typeof symbolValue !== "undefined") {
  		return symbolValue;
  	}
  	var value = list[canSymbol.iterator];
  	if(value !== undefined) {
  		return !!value;
  	}
  	if(Array.isArray(list)) {
  		return true;
  	}
  	return helpers.hasLength(list);
  }