anchor.diff:          formatter.Locale <- product.PriceLocale
           formatter.StringFromNumber(product.Price)
   
  +    let font = UIFont.SystemFontOfSize UIFont.ButtonFontSize
  +    let source = {
  +        new UITableViewSource() with
   
  -    let productsRequestDelegate = { 
  +            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")
  +                    | c -> c
  +                
  +                cell.Tag <- indexPath.Row
  +                cell.TextLabel.Text <- name
  +                cell.DetailTextLabel.Text <- desc
  +
  +                let size = (new NSString(price)).StringSize(font)
  +                cell.AccessoryView <- new UILabel(new RectangleF(0.f, 0.f, size.Width, controller.Table.RowHeight), Text = price, Font = font)
  +                //TODO: load credits images
  +                //Image.loadImageForCell (App.imageUrl user.Avatar 100) Image.placeholder cell tableView
  +                cell
  +
  +            override this.RowsInSection(tableView, section) =
  +                products.Length
  +
  +            override this.RowSelected(tableView, indexPath) =
  +                tableView.DeselectRow (indexPath, false)
  +                let user = products.[indexPath.Row]
  +                //TODO: the things to buy
  +                ()
  +    }
  +
  +    let products = { 
           new SKProductsRequestDelegate () with
               override this.ReceivedResponse (request, response) =
  -                for product in response.Products do
  -                    printfn "LocalizedDescription: %s" product.LocalizedDescription
  -                    printfn "LocalizedTitle: %s" product.LocalizedTitle
  -                    printfn "ProductIdentifier: %s" product.ProductIdentifier
  -                    printfn "ProductIdentifier: %s" (localizedPrice product)
  +                products <-
  +                    [
  +                        for product in response.Products do
  +                            yield (
  +                                product.ProductIdentifier,
  +                                product.LocalizedTitle,
  +                                product.LocalizedDescription,
  +                                (localizedPrice product)
  +                            )
  +                    ]
   
                   for product in response.InvalidProducts do
                       Logger.log (Exception(sprintf "[StoreKit] InvalidProduct - %s" product))
  +
  +                controller.Table.ReloadData()
   
               override this.RequestFailed (request, error) = Logger.log (Exception( error.Description))
           }
  
positive.code:     member val Table: UITableView = null with get, set
  
      override this.ViewDidLoad () =
          Async.startNetworkWithContinuation
              (async { return Api.ApiOk [| "wiredev.credits.1075";"wiredev.credits.12000"; "wiredev.credits.2200";"wiredev.credits.500";"wiredev.credits.5750";"wiredev.credits.24500" |]  })
              (function 
                  | Api.ApiOk result ->
                      
                      let request = new SKProductsRequest(NSSet.MakeNSObjectSet<NSString>(result.Select(fun s -> new NSString(s)).ToArray()), Delegate = productsRequestDelegate)
                      request.Start()
  
  
                  | error -> this.HandleApiFailure error
              )
  
  
negative.code: 
  
  [<Register ("CreditsViewController")>]
  type CreditsViewController () as controller =
      inherit UIViewController ("CreditsViewController", null)
  
      let mutable products:(string * string * string * string) list = []
  
      let localizedPrice (product:SKProduct) =
          let formatter = new NSNumberFormatter()
  