anchor.diff:          let handler = proc types []
           unbox (FSharpValue.MakeFunction(typeof<'a>, handler))
   
  -let sqlProcessor connectionString (sql: string, values: obj list) : IDataReader =
  +let sqlProcessor (connectionFactory: unit -> IDbConnection) (sql: string, values: obj list) =
       let stripFormatting s =
           let i = ref -1
           let eval (rxMatch: Match) =
  
positive.code:         param.Value <- p
          cmd.Parameters.Add param |> ignore
      values |> Seq.iteri createParam
      upcast cmd.ExecuteReader(CommandBehavior.CloseConnection)
  
  let runQuery connectionString a = PrintfFormatProc (sqlProcessor connectionString) a
negative.code:             sprintf "@p%d" !i
          Regex.Replace(s, "%.", eval)
      let sql = stripFormatting sql
      let conn = connectionFactory()
      conn.Open()
      let cmd = conn.CreateCommand()
      cmd.CommandText <- sql
  