static <E> EventStream<QuasiListChange<? extends E>> quasiChangesOf(ObservableList<E> list) { if (list instanceof LiveList) { LiveList<E> lst = (LiveList<E>) list; return lst.quasiChanges(); } else { return new EventStreamBase<QuasiListChange<? extends E>>() { @Override protected Subscription observeInputs() { return LiveList.<E>observeQuasiChanges(list, this::emit); } }; } }