throws Throwable
throws IOException
  final public void printR(Env env,                           WriteStream out,                           int depth,                           IdentityHashMap<Value, String> valueSet)    throws Throwable  {    if (valueSet.get(this) != null) {      out.print("#recursion#");      return;    }    valueSet.put(this, "printing");    try {      printRImpl(env, out, depth, valueSet);    }    finally {      valueSet.remove(this);    }  }