anchor.diff:  
   [source,java]
   ----
  -// Map<String, Point>
  -final Type genericMap = GenericTypes.generic(Map.class, String.class, Point.class);
  +// Map<Number, Point>
  +final Type type = GenericTypes.generic(Map.class, Number.class, Point.class);
   
  -// List<String>
  -final Type genericList = GenericTypes.generic(List.class, String.class);
  +// List<Number>
  +final Type type = GenericTypes.generic(List.class, Number.class);
   ----
   
   Super- and subtypes such as `List<? super Point>` or `List<? extends Number>` can be created in the following way:
  
positive.code: [source,java]
  ----
  // List<? super Point>
  final Type list = GenericTypes.generic(List.class, GenericTypes.supertype(Point.class));
  
  // List<? extends Number>
  final Type list = GenericTypes.generic(List.class, GenericTypes.subtype(Number.class));
  ----
  
  Use static imports to shorten the above calls to:
  
negative.code: [source,java]
  ----
  // List<? super Point>
  final Type type = generic(List.class, supertype(Point.class));
  
  // List<? extends Number>
  final Type type = generic(List.class, subtype(Number.class));
  ----
  
  and then go crazy with this:
  