anchor.diff:                  |> returnQ "node"
                   |> resultsAsyncQ
                   
  -            let shouldHaveExactlyOne =
  +            let noneOneMany =
                   results
                   |> Seq.truncate 2
                   |> Seq.toList
   
               return
  -                match shouldHaveExactlyOne with
  +                match noneOneMany with
  +                | [] -> None
                   | [ result ] -> Some result
  -                | _ -> None
  +                | _ -> failwith (sprintf "Multiple nodes found in graph %s that match id %A" graphName nodeId)
           }
   
       // All results currently have to be of the same type.
  
positive.code:         let query, clause = query |> withNodeWhereClauseQ name nodeId
          query |> addWhere clause
      
  
      let getNode (graphClient : ICypherGraphClient) (graphName : string) (nodeId : NodeId) =
          async {
  
negative.code:             |> deleteQ "r"
  
          | UpdateNode (node, data) ->
              query
              |> mergeNodeIdQ "node" node
              |> updateNodeQ "node" node data
  
      let graphActionSeqToQuery (graphClient : ICypherGraphClient) (graphName : string) actions =
          let folder (query, isFirst) action =
  