docs: public <L extends Listener> void popEvent(Event<?, L> expected) {
          synchronized (this.stack) {
              final Event<?, ?> actual = this.stack.pop();
              if (actual != expected) {
                  throw new IllegalStateException(String.format(
                          "Unbalanced pop: expected '%s' but encountered '%s'",
                          expected.getListenerClass(), actual));
              }
          }
      }