anchor.diff:              | CreateRelationCall _ -> Choice1Of2 (executeCreate cypher next)
               | DeleteNodeCall _
               | DeleteRelationshipCall _ -> Choice1Of2 (executeDelete cypher next)
  +            | MergeRelationCall _ -> Choice1Of2 (executeMerge cypher next)
               | _ -> unexpectedExpr context next
           let context = "After WHERE expression"
               
  
positive.code:         | LeftRel of leftNode:NodeExpr * rel:RelExpr * rightNode:NodeExpr * isUnique:bool
          | RightRel of leftNode:NodeExpr * rel:RelExpr * rightNode:NodeExpr * isUnique:bool
          | LeftOrRightRel of leftNode:NodeExpr * rel:RelExpr * rightNode:NodeExpr
          member x.CypherExpr =
              match x with
              | LeftRel(lnode,rel,rnode,_) ->
                  sprintf "%s<-%s-%s" lnode.CypherExpr rel.CypherExpr rnode.CypherExpr
  
negative.code: 
      let inline (|IsRelExpr|_|) expr: Option<RelExpr> =
          match expr with
          | ValueWithName(value, typ, name) -> Some (RelExpr.NamedValue(name, typ, value))
          | DeclareRelationshipCall typ ->
              let cypherExpr = sprintf "[:%s]" typ.Name
              Some (RelExpr.TypedPattern(cypherExpr))
  