anchor.diff:            ParameterName = parameterName
             Value = value }
   
  -let addParameter (cmd: #IDbCommand) (p: Parameter) =
  +let addParameter (p: Parameter) (cmd: #IDbCommand) =
       let par = cmd.CreateParameter()
       par.DbType <- p.DbType
       par.Direction <- p.Direction
  
positive.code:     cmd.Parameters.Add par |> ignore
      cmd
  
  let internal prepareCommand (connection: #IDbConnection) (sql: string) (cmdType: CommandType) (parameters: (string * DbType * obj) list) =
      let cmd = connection.CreateCommand()
      cmd.CommandText <- sql
      cmd.CommandType <- cmdType
  
negative.code:         p.DbType <- parameterType
          p.Value <- value
          cmd.Parameters.Add p |> ignore
      parameters |> Seq.iter (addParameter >> ignore)
      cmd
  
  let internal inferParameterDbType (p: string * obj) = 
      Parameter.make(fst p, snd p)
  
  let inferParameterDbTypes (p: (string * obj) list) = 
      p |> List.map inferParameterDbType
  
  let execReader (connection: #IDbConnection) (sql: string) (parameters: Parameter list) =
      use cmd = prepareCommand connection sql CommandType.Text parameters
      cmd.ExecuteReader()
  
  let execNonQuery (connection: #IDbConnection) (sql: string) (parameters: Parameter list) =
      use cmd = prepareCommand connection sql CommandType.Text parameters
      cmd.ExecuteNonQuery()
      
  