anchor.diff:  RETURN n1 IS NULL && n2 IS NOT NULL
   ----
   
  -. *Spacing*
  -.. For literal maps:
  -... No space between the opening brace and the first key
  -... No space between key and colon
  -... One space between colon and value
  -... No space between value and comma
  -... One space between comma and next key
  -... No space between the last value and the closing brace
  +. When patterns wrap lines, break after arrows, not before.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car)-->(:Company)
  +      <--(:Country)
  +RETURN count(vehicle)
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car)-->(:Company)<--
  +      (:Country)
  +RETURN count(vehicle)
  +----
  +
  +. Surround node patterns with parentheses.
  +.. This only concerns old Cypher code, as omitting parentheses is no longer legal in Cypher.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH person-->vehicle
  +RETURN person, vehicle
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (person)-->(vehicle)
  +RETURN person, vehicle
  +----
  +
  +. Avoid having to use back-ticks to escape characters and keywords.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH (`odd-ch@racter$`:`Spaced Label` {`&property`: 42})
  +RETURN labels(`odd-ch@racter$`)
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (node:NonSpacedLabel {property: 42})
  +RETURN labels(node)
  +----
  +
  +. Do not use a semicolon at the end of the statement.
  ++
  +.Bad
  +[source, cypher]
  +----
  +RETURN 1;
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +RETURN 1
  +----
  +
  +==== Patterns
  +
  +. Use anonymous nodes and relationships when the variable would not be used.
  ++
  +.Bad
  +[source, cypher]
  +----
  +CREATE (a:End {prop: 42}),
  +       (b:End {prop: 3}),
  +       (c:Begin {prop: id(a)})
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +CREATE (a:End {prop: 42}),
  +       (:End {prop: 3}),
  +       (:Begin {prop: id(a)})
  +----
  +
  +. Chain patterns together to avoid repeating variables.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car), (vehicle:Car)-->(:Company)
  +RETURN count(vehicle)
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car)-->(:Company)
  +RETURN count(vehicle)
  +----
  +
  +. Put named nodes before anonymous nodes.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH ()-->(vehicle:Car)-->(manufacturer:Company)
  +WHERE manufacturer.founded_year < 2000
  +RETURN vehicle.mileage
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (manufacturer:Company)<--(vehicle:Car)<--()
  +WHERE manufacturer.founded_year < 2000
  +RETURN vehicle.mileage
  +----
  +
  +. Keep anchor nodes at the beginning of the `MATCH` clause.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car)-->(manufacturer:Company)
  +WHERE manufacturer.founded_year < 2000
  +RETURN vehicle.mileage
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (manufacturer:Company)<--(vehicle:Car)<--(:Person)
  +WHERE manufacturer.founded_year < 2000
  +RETURN vehicle.mileage
  +----
  +
  +. Prefer outgoing (left to right) pattern relationships to incoming pattern relationships.
  ++
  +.Bad
  +[source, cypher]
  +----
  +MATCH (:Country)-->(:Company)<--(vehicle:Car)<--(:Person)
  +RETURN vehicle.mileage
  +----
  ++
  +.Good
  +[source, cypher]
  +----
  +MATCH (:Person)-->(vehicle:Car)-->(:Company)<--(:Country)
  +RETURN vehicle.mileage
  +----
  +
  +==== Spacing
  +
  +. For literal maps:
  +.. No space between the opening brace and the first key
  +.. No space between key and colon
  +.. One space between colon and value
  +.. No space between value and comma
  +.. One space between comma and next key
  +.. No space between the last value and the closing brace
   +
   .Bad
   [source, cypher]
  
positive.code: RETURN map
  ----
  
  .. No padding space for parameters.
  +
  .Bad
  [source, cypher]
  
negative.code: [source, cypher]
  ----
  RETURN split('original', 'i')
  ----
  
  == Recommendations
  