@Test public void withSideEffect_lateBinding() {

  List<Integer> source = new ArrayList<>();
  List<Integer> list = new ArrayList<>();
  Stream<Integer> stream = MoreStreams.withSideEffect(source.stream(), list::add);
  assertThat(stream.isParallel()).isFalse();
  assertThat(list).isEmpty();
  // now add to source
  source.add(1);
  // Change is reflected
  assertThat(stream).containsExactly(1);
  assertThat(list).containsExactly(1).inOrder();;
}