internal static void extend(Symbol sym, Object val)
 {
     if (!sym.isDynamic)
         throw new Exception("Dynamic vars must have prefix *");
     denv = new DynamicEnv(sym, val, denv);
 }
 internal static void restore(DynamicEnv olddenv)
 {
     denv = olddenv;
 }
 private DynamicEnv(Symbol sym, Object val, DynamicEnv next)
 {
     this.sym = sym;
     this.val = val;
     this.next = next;
 }