anchor.diff:  
   type private Command3<'a, 'b, 'c>(data, parameters) =
       inherit Command<ResultSets<'a, 'b, 'c>>(data, parameters)
  +    override __.WithConnectionName(connectionName) =
  +        upcast Command3({ data with ConnectionName = connectionName}, parameters)
       override __.ResultSetProcessor() = upcast ResultSetProcessor3<'a, 'b, 'c>()
   
   type CommandConstructor() =
  
positive.code: 
  type private Command0(data, parameters) =
      inherit Command<unit>(data, parameters)
      override __.ResultSetProcessor() = upcast ResultSetProcessor0<unit>()
  
  type private ResultSetProcessor1<'a>() =
  
negative.code:     override __.ProcessRow() = proc.ProcessRow()
      override __.GetResult() = result.Value
  
  type private Command2<'a, 'b>(data, parameters) =
      inherit Command<ResultSets<'a, 'b>>(data, parameters)
      override __.WithConnectionName(connectionName) =
          upcast Command2({ data with ConnectionName = connectionName}, parameters)
      override __.ResultSetProcessor() = upcast ResultSetProcessor2<'a, 'b>()
  
  type private ResultSetProcessor3<'a, 'b, 'c>() =
  