anchor.diff:  class PropertyExtractor implements ValueExtractor<Property<@ExtractedValue>> {
   
   	@Override
  -	public void extractValues(Property[] originalValue, ValueReceiver receiver) {
  +	public void extractValues(Property originalValue, ValueReceiver receiver) {
   		// ...
   	}
   }
  
positive.code: 
  ==== Retrieval of extractors
  
  When detecting a type-level constraint or cascade, the applicable extractor is determined as follows:
  
  * Choose the most specific extractor matching the type parameter in question; an extractor A is more specific than another extractor B if A extracts a subtype of the type extracted by B.
  * If there are several extractors which are equally specific, an `UnexpectedTypeException` is raised. TODO: apply rules similar to "ConstraintValidator resolution algorithm".
  
negative.code: ----
  
  I can't see a compelling use case for this (when would extractor behavior differ between different parameterizations of the same generic type) and am leaning towards only supporting the wildcard parameterization (`implements ValueExtractor<List<@ExtractedValue ?>>`).
  
  * Vet the API by exploring advanced use cases, e.g. Guava's https://github.com/google/guava/wiki/NewCollectionTypesExplained#table[Table], http://google.github.io/guava/releases/snapshot/api/docs/com/google/common/graph/Graph.html[Graph], http://google.github.io/guava/releases/snapshot/api/docs/com/google/common/graph/ValueGraph.html[ValueGraph] and http://google.github.io/guava/releases/snapshot/api/docs/com/google/common/graph/Network.html[Network] types
  