anchor.diff:  
   node = path.next();
   assertThat( node.getName() ).isEqualTo( "<table cell>" );
  -assertThat( node.getKind() ).isEqualTo( ElementKind.TYPE_ARGUMENT );
  +assertThat( node.getKind() ).isEqualTo( ElementKind.CONTAINER_ELEMENT );
   assertThat( node.getKey() ).isEqualTo( new CellKey(Year.of( 2015 ), "cds") );
   assertThat( node.getIndex() ).isNull();
   
  
positive.code: assertThat( path.hasNext() ).isFalse();
  ----
  
  1. Revisit the names of nodes of kind `TYPE_ARGUMENT`;
  instead of `<iterable element>`, `<map value>` etc. should it be the names of the type parameters in question, i.e. `<E>`, `<V>` etc.?
  
negative.code: 
  ==== Extensions to `Node`
  
  There is a new `javax.validation.ElementKind`, `CONTAINER_ELEMENT`.
  There is also a new `Node` sub-type, `ContainerElementNode`:
  
  [source,java]
  ----
  interface ContainerElementNode extends Node {
  
      /**
       * @return the type parameter affected by the violated constraint
       */
      TypeParameter 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`.
  
  `TypeParameter` contains the information about the type parameter. It is designed as a simplified and serializable version of `java.lang.reflect.TypeVariable`:
  
  [source,java,indent=0]
  ----
  include::{validation-api-source-dir}javax/validation/TypeParameter.java[lines=7..8;12..-1]
  ----
  
  ==== Default extractors
  
  