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);
                    }
                });
            }
        };
    }
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.
Use only when the subscriber does not cause {