anchor.diff:  ----
   
   === Interaction with existing features
  -This replaces the pre-existing +HAS(...)+ function.
  +This replaces the pre-existing `HAS(...)` function.
   
   == What others do
   
  
positive.code: 
  === Semantics
  
  All forms of +EXIST(...)+ accomplish the same task - check if a particular pattern exists in the database.
  They are expressions, and as such must be side-effect free; that is, the subqueries in +EXIST+ must not be updating queries.
  Regarding nomenclature, all forms of +EXISTS+ are scalar expressions - they return a single boolean value, and this value is never +null+.
  
  ==== Property exists
  
  In the property checking form, any expression is accepted as the input.
  If the input expression would have produced a +null+ value, +EXISTS(...)+ evaluates to false, and for all other values, it will return +true+.
  This form of +EXISTS(...)+ is equivalent to checking for +null+ using +IS NOT NULL+; i.e. +EXISTS(expr)+ is equivalent to +expr IS NOT NULL+.
  
  This form is there to make property existence checking idiomatic in Cypher - we do not want the user thinking of missing properties as checking for +null+ values.
  
  ==== Subquery exists
  When checking for the existence of subqueries, variables and parameters from the outer query are available in the subquery.
  Variables introduced in the subquery are not available on the outside.
  
  For each matching subgraph evaluated with +EXISTS{...}+, the result value must be true if the subquery finds at least one matching row.
  If no matches are found, false should be returned.
  
  The subquery used in +EXISTS{...}+ has to follow the following rules:
  
   * It has to be a read-only query. Updating the graph as part of a predicate is not allowed.
   * It cannot end in a +RETURN+ clause, nor may it contain +UNION+
   * If +WITH+ ends the subquery, it should be able to change the cardinality of the subquery.
   In other words, the +WITH+ clause should include +WHERE+ or +SKIP+, since these sub-clauses can turn a query that returns rows into one that does not.
  
  ==== Simple subquery exists
  When the subquery can be described with a single +MATCH-WHERE+ clause, the +MATCH+ keyword can be omitted, as in example 2A and B.
  The difference between this form and a simple pattern predicate, which is already available, is that this form allows for introducing new variables inside the +EXISTS(...)+ scope.
  
  === Examples
  _Example 1A:_
  
negative.code:            | simple subquery exists
              ;
  
  property exists = "exists", "(", expression ")"
                  ;
  
  subquery exists = "EXISTS", "{", read only clause, { read only clause }, "}" ;
  