docs: function(target, source){
  		var updateDeep = target[canSymbol.for("can.updateDeep")];
  		if(updateDeep) {
  			updateDeep.call(target, source);
  		} else if( typeReflections.isMoreListLikeThanMapLike(source) ) {
  			// list-like
  			shapeReflections.updateDeepList(target, source);
  		} else {
  			// map-like
  			shapeReflections.updateDeepMap(target, source);
  		}
  		return target;
  	}