anchor.diff:  //                              delay:0.0f
   //                            options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState)
   //                         animations:^{
  -//                             existingActivityView.alpha <- 0.0f
  +//                             existingActivityView.Alpha <- 0.0f
   //                         } completion:^(BOOL finished) {
   //                             [existingActivityView removeFromSuperview]
   //                             objc_setAssociatedObject (self, &toastActivityViewKey, null, OBJC_ASSOCIATION_RETAIN_NONATOMIC)
   //                         }]
   //    }
   //}
  -//
  -//#pragma mark - Helpers
  -//
  -//- (CGPoint)centerPointForPosition:(id)point withToast:(UIView *)toast {
  -//    if([point isKindOfClass:[NSString class]]) {
  -//        // convert string literals "top", "bottom", "center", or any point wrapped in an NSValue object into a CGPoint
  -//        if([point caseInsensitiveCompare:"top"] == NSOrderedSame) {
  -//            return CGPointMake(self.bounds.size.width/2, (toast.frame.size.height / 2) + toastVerticalPadding)
  -//        } else if([point caseInsensitiveCompare:"bottom"] == NSOrderedSame) {
  -//            return CGPointMake(self.bounds.size.width/2, (self.bounds.size.height - (toast.frame.size.height / 2)) - toastVerticalPadding)
  -//        } else if([point caseInsensitiveCompare:"center"] == NSOrderedSame) {
  -//            return CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2)
  -//        }
  -//    } else if ([point isKindOfClass:[NSValue class]]) {
  -//        return [point CGPointValue]
  -//    }
  -//    
  -//    NSLog("Warning: Invalid position for toast.")
  -//    return [self centerPointForPosition:toastDefaultPosition withToast:toast]
  -//}
  -
  -let sizeForString (str:string) (font:UIFont) (constrainedSize:SizeF) (lineBreakMode:UILineBreakMode) =
  -    let str = NSString.op_Explicit str 
  -//    if ([str respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {
  -//        NSMutableParagraphStyle *paragraphStyle <- [[NSMutableParagraphStyle alloc] init]
  -//        paragraphStyle.lineBreakMode <- lineBreakMode
  -//        NSDictionary *attributes <- @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle}
  -//        CGRect boundingRect <- [str boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:null]
  -//        return CGSizeMake(ceilf(boundingRect.size.width), ceilf(boundingRect.size.height))
  -//    }
  -
  -    str.StringSize(font, constrainedSize, lineBreakMode)
  -
  -type UIView with
  +
   
       member this.ViewForMessage (message:string) (title:string) (image:UIImage) =
           // dynamically build a toast view with any combination of message, title, & image.
  
positive.code: 
  // display duration and position
  let toastDefaultPosition = "bottom"
  let int toastDefaultDuration  = 3.0f
  
  // image view size
  let toastImageViewWidth = 80.0f
  
negative.code: //    }
  //    
  //    UIActivityIndicatorView *activityIndicatorView <- [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]
  //    activityIndicatorView.center <- CGPointMake(activityView.Bounds.Size.Width / 2, activityView.Bounds.Size.Height / 2)
  //    [activityView addSubview:activityIndicatorView]
  //    [activityIndicatorView startAnimating]
  //    
  