anchor.diff:  
               override this.RowSelected(tableView, indexPath) =
                   tableView.DeselectRow (indexPath, false)
  -                let user = products.[indexPath.Row]
  -                //TODO: the things to buy
  -                ()
  +                let (id, name, desc, price, product) = products.[indexPath.Row]
  +                let alert = new UIAlertView (Title = sprintf "Purchase %s" name, Message = sprintf "Would you like to purchase %s for %s" name price)
  +                alert.AddButton "Confirm" |> ignore
  +                alert.AddButton "Cancel" |> ignore
  +                alert.Clicked.Add(fun args ->
  +                    match args.ButtonIndex with
  +                    | 0 ->
  +                        let payment = SKMutablePayment.PaymentWithProduct product
  +                        payment.Quantity <- 1
  +                        SKPaymentQueue.DefaultQueue.AddPayment(payment)
  +                    | _ -> ()
  +                )
  +                alert.Show ()
       }
   
       let products = { 
  
positive.code:         new UITableViewSource() with
  
              override this.GetCell(tableView, indexPath) =
                  let (id, name, desc, price) = products.[indexPath.Row]
                  let cell = 
                      match tableView.DequeueReusableCell "credits-product-cell" with
                      | null -> new UITableViewCell (UITableViewCellStyle.Subtitle, "credits-product-cell")
  
negative.code:                                 product.ProductIdentifier,
                                  product.LocalizedTitle,
                                  product.LocalizedDescription,
                                  (localizedPrice product),
                                  product
                              )
                      ]
  
  