iNew.String("Jcon Version 0.6.0, October 14, 1997"));
iNew.String("Jcon Version 0.6.0, November 4, 1997"));
	void announce() {				// constants		iEnv.declareKey("null", iNew.Null());		iEnv.declareKey("e", iNew.Real(Math.E));		iEnv.declareKey("phi", iNew.Real((1.0 + Math.sqrt(5.0)) / 2.0));		iEnv.declareKey("pi", iNew.Real(Math.PI));		iEnv.declareKey("version", 			iNew.String("Jcon Version 0.6.0, October 14, 1997"));		// constant for lack of a better solution		iEnv.declareKey("time", iNew.Integer(0));	    	// cset constants		vCset lcase, ucase;		iEnv.declareKey("digits", iNew.Cset('0', '9'));		iEnv.declareKey("lcase", lcase = iNew.Cset('a','z'));		iEnv.declareKey("ucase", ucase = iNew.Cset('A','Z'));		iEnv.declareKey("letters", lcase.Union(ucase));		iEnv.declareKey("ascii", iNew.Cset(0, 127));		iEnv.declareKey("cset", iNew.Cset(0, vCset.MAX_VALUE));		// read-only, but variable		iEnv.declareKey("clock", new k$clock());		iEnv.declareKey("current", new k$current());		iEnv.declareKey("date", new k$date());		iEnv.declareKey("dateline", new k$dateline());		iEnv.declareKey("host", new k$host());		iEnv.declareKey("main", new k$main());		iEnv.declareKey("source", new k$source());		iEnv.declareKey("progname", new k$progname());		// files		iEnv.declareKey("input",  new k$input());		iEnv.declareKey("output", new k$output());		iEnv.declareKey("errout", new k$errout());		//incestuous		k$subject s = new k$subject();		// &subject		k$pos p = new k$pos();			// &pos		s.pos = p;		p.subject = s;		s.Assign(iNew.String(""));		iEnv.declareKey("subject", s);		iEnv.declareKey("pos", p);		// error-related		iEnv.declareKey("error", new k$error());		iEnv.declareKey("errornumber", iNew.Proc(			"&errornumber", "rts.k$errornumber", 0));		iEnv.declareKey("errortext", iNew.Proc(			"&errortext", "rts.k$errortext", 0));		iEnv.declareKey("errorvalue", iNew.Proc(			"&errorvalue", "rts.k$errorvalue", 0));		iEnv.declareKey("dump", new k$dump());		// generators		iEnv.declareKey("features", iNew.Proc(			"&features", "rts.k$features", 0));		iEnv.declareKey("level", iNew.Proc(			"&level", "rts.k$level", 0));		// bogus generators		vProc proc = iNew.Proc(			"k$gen4zeroes", "rts.k$gen4zeros", 0);		iEnv.declareKey("allocated", proc);		iEnv.declareKey("collections", proc);		proc = iNew.Proc(			"k$gen3zeroes", "rts.k$gen3zeros", 0);		iEnv.declareKey("regions", proc);		iEnv.declareKey("storage", proc);		// special behavior		iEnv.declareKey("trace", new k$trace());		iEnv.declareKey("random", new k$random());		// graphics constants		iEnv.declareKey("lpress", iNew.Integer(wEvent.LPress));		iEnv.declareKey("mpress", iNew.Integer(wEvent.MPress));		iEnv.declareKey("rpress", iNew.Integer(wEvent.RPress));		iEnv.declareKey("ldrag", iNew.Integer(wEvent.LDrag));		iEnv.declareKey("mdrag", iNew.Integer(wEvent.MDrag));		iEnv.declareKey("rdrag", iNew.Integer(wEvent.RDrag));		iEnv.declareKey("lrelease", iNew.Integer(wEvent.LRelease));		iEnv.declareKey("mrelease", iNew.Integer(wEvent.MRelease));		iEnv.declareKey("rrelease", iNew.Integer(wEvent.RRelease));		iEnv.declareKey("resize", iNew.Integer(wEvent.Resize));		// graphics variables		iEnv.declareKey("window", new k$window());	// &window		iEnv.declareKey("x", new k$x());		// &x		iEnv.declareKey("y", new k$y());		// &y		iEnv.declareKey("row", new k$row());		// &row		iEnv.declareKey("col", new k$col());		// &col		iEnv.declareKey("interval", new k$interval());	// &interval		iEnv.declareKey(			"control", iNew.Proc("&control", "rts.k$control", 0));		iEnv.declareKey(			"meta", iNew.Proc("&meta", "rts.k$meta", 0));		iEnv.declareKey(			"shift", iNew.Proc("&shift", "rts.k$shift", 0));	}