Using a method reference to refer to the abstract method of the target type is unnecessary. For example,
Stream<Integer> filter(Stream<Integer> xs, Predicate<Integer> predicate) { return xs.filter(predicate::test); }
Stream<Integer> filter(Stream<Integer> xs, Predicate<Integer> predicate) { return xs.filter(predicate); }