     expr = read_sexpr(stdin);
     if (expr == x_eof)
       break;
-    value = eval(expr);
+    value = x_eval(expr);
     print_cell(value, stdout);
     putchar('\n');
   }

  x_any token;
  x_any temp;

  token = ratom(infile);

  if (is_symbol(token))
    return x_cons(token, read_tail(infile));

      return ((x_fn3)data(cell))(car(args), car(cdr(args)), car(cdr(cdr(args))));
    }
  else if (is_user(cell))
    return x_apply((x_any)data(cell), args);
  else
    assert(0);
  return x_nil;
}

x_any x_eval(x_any cell)
{
  if (is_atom(cell))
    return cell;
  else if (is_pair(cell) && (is_symbol(car(cell))))
    return x_cons(car(cell), list_eval(cdr(cell)));
  else
    return x_apply(car(cell), list_eval(cdr(cell)));
}

x_any intern(const char*);
