code: function MERGER(oldVal, newVal) {
  		let onme = CNAME(oldVal), ocon = ISCONFIG(oldVal), otyp = ISPTYPE(oldVal),
  			nnme = CNAME(newVal), ncon = ISCONFIG(newVal), ntyp = ISPTYPE(newVal);
  		if (otyp || ntyp) { return newVal; };
  		if (ocon && ncon && onme==nnme) {
  			return new GETCONFIG(onme)(Assign(oldVal, newVal));
  		};
  		if (ocon && onme=='GNParam') {
  			if (nnme=='array') return oldVal.AddVersion(newVal[0],     newVal[1]);
  			if (nnme=='List' ) return oldVal.AddVersion(newVal.get(0), newVal.get(1).toJS());
  		};
  		return newVal;
  	}
docs: A `callback` used in `Immutable`.`mergeWith`
  
  @param {*} oldVal The value of the original Object
  @param {*} newVal The value of the merging Object
  @returns {*}