that could access the current environment dynamically. It also
differed unnecessarily from common lisp set in this respect.
So now setq is a builtin special form that sets lexical or
global variables, and set is a function that sets global variables.
Rather than eliminate the power of the dynamic set, I extended it
by adding eval*, which evaluates its argument in the current
environment. The justification for this is that the interpreter
is already dynamic enough to allow it with no overhead, so the
ability might as well be exposed.
cleanup; removing some magic numbers
beginning hash tables