anchor.diff:  a nullable variant:
   
    * `BOOLEAN`
  - ** true and false. Note that Cypher uses ternary logic in `WHERE` and hence the type of predicate expressions is generally `BOOLEAN?` with `NULL` indicating lack of information (the unknown state of ternary logic).
  + ** true and false. Note that Cypher uses ternary logic in `WHERE` and hence the type of predicate expressions is generally `BOOLEAN?` with `null` indicating lack of information (the unknown state of ternary logic).
    * `STRING`
  - ** Unicode Strings, i.e. `"Cypher"`, and `‘text’`
  + ** Unicode Strings, i.e. `'Cypher'`, and `‘text’`
    * `NUMBER`
    ** Parent of all numeric types (i.e. `INTEGER` and `FLOAT`)
    ** `NUMBER` is an abstract type.
  
positive.code: They could be added instead at a later stage.
  
  *Example*
  `RETURN [1, "Yo"] :: LIST OF (STRING | NUMBER)`
  
negative.code: a nullable variant:
  
  * `LIST OF T`
  ** Lists (ordered sequences with random access) of elements of a given material or nullable type `T`. The syntax for a nullable lists of elements of type `T` is `LIST? OF T`. Note that accessing a list by index always yields a value of type `T?` since indexing out of bounds is defined to return `null`.
  ** `LIST OF T2` is a subtype of `LIST OF T1` if `T2` is a subtype of `T1`. This is a valid subtyping rule since values in Cypher are immutable. Adding an element of type `T` to a `LIST OF S` would produce a new list of type `LIST OF R`, where `R` is the nearest common supertype of `T` and `S`
  * `MAP`
  ** Maps from string keys to values of any type, i.e. `{ name: 'Svensson' }`. The type of map values is `ANY?` since it is unknown to the type system if a given map contains a certain key or not. Note also that maps do not distinguish between missing keys and keys that map to a `null` value. `MAP` is a parent to all property containers, like `NODE` and `RELATIONSHIP`.
  
  ==== Graph Types
  
  