public Value create(Object val, Object args) {
			Value[] v = (Value[]) val;
			if(args instanceof Boolean)
				return(new RCvalue(v, ((Boolean)(args)).booleanValue()));
			String key = (String)(args);
			if((key.compareTo("row") == 0) || (key.compareTo("col") == 0)) {
				Value vv[];
				if(v.length < 2) vv = v;
				else {
					TailValue tail = (TailValue)(v[1]);
					vv = new Value[tail.size() + 1];
					vv[0] = v[0];
					Enumeration z = tail.enumer();
					for(int i = 1; z.hasMoreElements(); i++)
						vv[i] = (Value)(z.nextElement());
				}
				return(new RCvalue(vv, key.compareTo("row") == 0));
			} else if(    (key.compareTo("rowTail") == 0)
					|| (key.compareTo("colTail") == 0)) {
				return(new TailValue(v));
			} else throw new IllegalArgumentException(
					"RCvalue.factory: bad key -- " + key);
		}