anchor.diff:          | Var of var:Var
           | NamedValue of cypherExpr:string * paramName:string * value:obj
           | Anonymous of typ:Type
  +        member x.CypherExprForCreate =
  +            match x with
  +            | Var(var) -> sprintf "(%s)" var.Name
  +            | NamedValue(cypherExpr, _, _) -> cypherExpr
  +            | Anonymous(typ) -> sprintf "(:%s)" typ.Name
           member x.CypherExpr =
               match x with
               | Var(var) -> sprintf "(%s:%s)" var.Name var.Type.Name
  
positive.code:         member x.CypherExprForCreate =
              match x with
              | LeftRel(lnode,rel,rnode,_) ->
                  sprintf "%s<-%s-%s" lnode.CypherExpr rel.CypherExprForCreate rnode.CypherExpr
              | RightRel(lnode,rel,rnode,_) ->
                  sprintf "%s-%s->%s" lnode.CypherExpr rel.CypherExprForCreate rnode.CypherExpr
              | LeftOrRightRel(lnode,rel,rnode) ->
                  sprintf "%s-%s-%s" lnode.CypherExpr rel.CypherExprForCreate rnode.CypherExpr
  
          member x.CypherExpr =
              match x with
  
negative.code: 
                  let withParamFolder (cypher: ICypherFluentQuery) (paramName, value) =
                      cypher.WithParam(paramName, value)
  
                  debug ("Create relation: " + x.CypherExprForCreate)
  
                  if isUnique then
                      cypher.CreateUnique(x.CypherExprForCreate)
  