reactfx/src/main/java/org/reactfx/EventStreams.java
public static <T> EventStream<ListModification<? extends T>> simpleChangesOf(ObservableList<T> list) {
        return new EventStreamBase<ListModification<? extends T>>() {
            @Override
            protected Subscription observeInputs() {
                return LiveList.observeChanges(list, c ->  {
                    for(ListModification<? extends T> mod: c) {
                        emit(mod);
                    }
                });
            }
        };
    }
public static <T> EventStream<ListModification<? extends T>> simpleChangesOf(ObservableList<T> list) {
        return new EventStreamBase<ListModification<? extends T>>() {
            @Override
            protected Subscription observeInputs() {
                return LiveList.observeChanges(list, c ->  {
                    for(ListModification<? extends T> mod: c) {
                        emit(mod);
                    }
                });
            }
        };
    }
Use only when the subscriber does not cause {@code list} modification
of the underlying list.