anchor.diff:              match query with
               // Create node
               | CreateNodeCall(_) as createExpr -> Choice1Of2 (executeCreate cypher createExpr)
  +            // TODO denisok: this is not good: useful data should be extracted -> the ActivePatterns are executed many times
  +            | MergeNodeCall(_) as mergeExpr -> Choice1Of2 (executeMerge cypher mergeExpr)
               | Sequential(CreateNodeCall(_) as createExpr, rest) ->
                   let newCypher = executeCreate cypher createExpr
                   impl newCypher rest
  
positive.code:             | NamedValue(cypherExpr, paramName, value) ->
                  cypher.Create(cypherExpr).WithParam(paramName, value)
              | Anonymous(_) -> failwith "Can't create anonymous nodes"
  
      [<RequireQualifiedAccess>]
      [<NoComparison>]
  
negative.code:     let inline (|DeclareRelationshipCall|_|) (callExpr: Expr) =
          match callExpr with
          | SpecificCall <@ declareRelationship @> (_, [relType], _) -> Some relType
          | _ -> None
  
      let (|PropertyGetChain|_|) (expr: Expr) =
  