anchor.diff:  
   node = path.next();
   assertThat( node.getName() ).isEqualTo( "<map value>" );
  -assertThat( node.getKind() ).isEqualTo( ElementKind.TYPE_ARGUMENT );
  +assertThat( node.getKind() ).isEqualTo( ElementKind.CONTAINER_ELEMENT );
   assertThat( node.getKey() ).isEqualTo( new OrderType( "RETAIL" ) );
   assertThat( node.getIndex() ).isNull();
   assertThat( node.getTypeParameter().getName() ).isEqualTo( "V" );
  
positive.code: 
  ==== Extensions to `Node`
  
  There is a new `javax.validation.ElementKind`, `TYPE_ARGUMENT`.
  There is also a new `Node` sub-type, `TypeArgumentNode`:
  
  [source,java]
  ----
  interface TypeArgumentNode extends Node {
  
      /**
       * Returns type parameter affected by the violated constraint.
       */
      TypeVariable<?> getTypeParameter();
  }
  ----
  
  `getTypeParameter()` also needs to be added to `BeanNode` and `PropertyNode` and will return the affected type parameter when violating a class-level or property constraint in the course of cascaded validation of a generic type, such as `List` or `Map`.
  
  ==== Default extractors
  
  
negative.code: 
  node = path.next();
  assertThat( node.getName() ).isEqualTo( "<table cell>" );
  assertThat( node.getKind() ).isEqualTo( ElementKind.CONTAINER_ELEMENT );
  assertThat( node.getKey() ).isEqualTo( new CellKey(Year.of( 2015 ), "cds") );
  assertThat( node.getIndex() ).isNull();
  
  