abstract public Value eval(Env env, Value a1, Value a2, Value a3, Value a4, Value a5) throws Throwable;
abstract public Value eval(Env env);
  abstract public Value eval(Env env, Value a1, Value a2, Value a3,                             Value a4, Value a5)    throws Throwable;