anchor.diff:  	val placesOfBirth = parser.parseExpression("members.![placeOfBirth.city]") as List<*>
   ----
   
  -You can also use a map to drive projection and, in this case, the projection expression is
  +Projection is supported for arrays and anything that implements `java.lang.Iterable` or
  +`java.util.Map`. When using a map to drive projection, the projection expression is
   evaluated against each entry in the map (represented as a Java `Map.Entry`). The result
   of a projection across a map is a list that consists of the evaluation of the projection
   expression against each map entry.
  
positive.code: 			"members.?[nationality == 'Serbian']").getValue(societyContext) as List<Inventor>
  ----
  
  Selection is actually supported for arrays and anything that implements `java.lang.Iterable` or `java.util.Map`.
  For a list or array, the selection criteria is evaluated against each individual element. Against a map, the
  selection criteria is evaluated against each map entry (objects of the Java type
  `Map.Entry`). Each map entry has its key and value accessible as properties for use in
  the selection.
  
  The following expression returns a new map that consists of those elements of the original map
  where the entry value is less than 27:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  
negative.code: source collection into another collection by selecting from its entries.
  
  Selection uses a syntax of `.?[selectionExpression]`. It filters the collection and
  returns a new collection that contains a subset of the original elements. For example,
  selection lets us easily get a list of Serbian inventors, as the following example shows:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  