anchor.diff:  Since Java 8, this even makes more sense since you can write:
   
   [source,java]
  -----
  -List<Name> names = new ArrayList<>(Arrays.asList(new Name("mickey"), new Name("donald"), new Name("pluto")));
  +----     
  +List<Name> names = new ArrayList<>(Arrays.asList(new Name("mickey"), 
  +                                                 new Name("donald"), 
  +                                                 new Name("pluto")));
   names.forEach(Name::toUpperCase);
   ----
   
  
positive.code:     return value;
    }
  }
  ----
  
  With such a class, using Java lists makes more sense:
  
  [source,java]
  ----
  List<Name> names = new ArrayList<>(Arrays.asList(new Name("mickey"), new Name("donald"), new Name("pluto")));
  for(Name name : names) {
    name.toUpperCase();
  }
  
negative.code: 
  [source,java]
  ----
    List<String> names = new ArrayList<>(Arrays.asList("mickey", 
                                                       "donald", 
                                                       "pluto"));
    List<String> namesUpper = reduce(names, String::toUpperCase);
  
  ...
  
  static List<String> reduce(List<String> names, UnaryOperator<String> operator) {
    List<String> namesUpper = new ArrayList<>();
    for(String name : names) {
      namesUpper.add(name.toUpperCase());
  