void (final @NotNull Listener l, @Nullable Disposable parent) { myListeners.add(l); if (parent != null) { Disposer.register(parent, new Disposable() { @Override public void dispose() { myListeners.remove(l); } }); } }