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: 	val newMap = parser.parseExpression("map.?[value<27]").getValue()
  ----
  
  
  In addition to returning all the selected elements, you can retrieve only the
  first or the last value. To obtain the first entry matching the selection, the syntax is
  `.^[selectionExpression]`. To obtain the last matching selection, the syntax is
  `.$[selectionExpression]`.
  
  
negative.code: 			"members.?[nationality == 'Serbian']").getValue(societyContext) as List<Inventor>
  ----
  
  Selection is 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's value is less than 27:
  
  [source,java,indent=0,subs="verbatim,quotes",role="primary"]
  .Java
  