anchor.diff:  //    UIView *toast = [self viewForMessage:message title:title image:image]
   //    [self showToast:toast duration:duration position:position]  
   //}
  -//
  -//let showToast (toast:UIView) =
  -//    [self showToast:toast duration:toastDefaultDuration position:toastDefaultPosition]
  -//
  -//
  -//let showToast:(UIView *)toast duration:(NSTimeInterval)duration position:(id)point {
  -//    toast.center <- [self centerPointForPosition:point withToast:toast]
  -//    toast.alpha <- 0.0f
  -//    
  -//    if (toastHidesOnTap) {
  -//        UITapGestureRecognizer *recognizer <- [[UITapGestureRecognizer alloc] initWithTarget:toast action:@selector(handleToastTapped:)]
  -//        [toast addGestureRecognizer:recognizer]
  -//        toast.userInteractionEnabled <- true
  -//        toast.exclusiveTouch <- true
  +
  +type UIView with
  +    member this.CenterPointForPosition (point:string) (toast:UIView) =
  +        match point with
  +        | "top" -> new PointF(this.Bounds.Size.Width/2.0f, (toast.Frame.Size.Height / 2.0f) + toastVerticalPadding)
  +        | "bottom" -> new PointF(this.Bounds.Size.Width/2.0f, (this.Bounds.Size.Height - (toast.Frame.Size.Height / 2.0f)) - toastVerticalPadding)
  +        | "center" -> new PointF(this.Bounds.Size.Width / 2.0f, this.Bounds.Size.Height / 2.0f)
  +        | _-> this.CenterPointForPosition toastDefaultPosition 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) {        }
  +//        else if([point caseInsensitiveCompare:"bottom"] == NSOrderedSame) {        }
  +//        else if([point caseInsensitiveCompare:"center"] == NSOrderedSame) {        }
  +//    } else if ([point isKindOfClass:[NSValue class]]) {
  +//        return [point CGPointValue]
   //    }
  -//    
  -//    [self addSubview:toast]
  -//    
  -//    [UIView animateWithDuration:toastFadeDuration
  -//                          delay:0.0f
  -//                        options:(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction)
  -//                     animations:^{
  -//                         toast.alpha <- 1.0f
  -//                     } completion:^(BOOL finished) {
  -//                         NSTimer *timer <- [NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(toastTimerDidFinish:) userInfo:toast repeats:NO]
  -//                         // associate the timer with the toast view
  -//                         objc_setAssociatedObject (toast, &toastTimerKey, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  -//                     }]
  -//    
  -//}
  -//
  +
  +    member this.ShowToast (toast:UIView) =
  +        this.ShowToast (toast, toastDefaultDuration, toastDefaultPosition)
  +
  +    member this.ShowToast (toast:UIView, duration:float, position:string) =
  +        toast.Center <- this.CenterPointForPosition position toast
  +        toast.Alpha <- 0.0f
  +    
  +        if toastHidesOnTap then
  +            let recognizer =  new UITapGestureRecognizer(new Action<_>(fun _ -> ()))
  +            toast.AddGestureRecognizer recognizer
  +            toast.UserInteractionEnabled <- true
  +            toast.ExclusiveTouch <- true
  +        
  +        this.AddSubview toast
  +//        
  +//        [UIView animateWithDuration:toastFadeDuration
  +//                              delay:0.0f
  +//                            options:(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction)
  +//                         animations:^{
  +//                             toast.Alpha <- 1.0f
  +//                         } completion:^(BOOL finished) {
  +//                             NSTimer *timer <- [NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(toastTimerDidFinish:) userInfo:toast repeats:NO]
  +//                             // associate the timer with the toast view
  +//                             objc_setAssociatedObject (toast, &toastTimerKey, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  +//                         }]
  +
  +
   //let hideToast:(UIView *)toast {
   //    [UIView animateWithDuration:toastFadeDuration
   //                          delay:0.0f
   //                        options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState)
   //                     animations:^{
  -//                         toast.alpha <- 0.0f
  +//                         toast.Alpha <- 0.0f
   //                     } completion:^(BOOL finished) {
   //                         [toast removeFromSuperview]
   //                     }]
  
positive.code: 
  // display duration and position
  let toastDefaultPosition = "bottom"
  let int toastDefaultDuration  = 3.0f
  
  // image view size
  let toastImageViewWidth = 80.0f
  
negative.code: //                              delay:0.0f
  //                            options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState)
  //                         animations:^{
  //                             existingActivityView.Alpha <- 0.0f
  //                         } completion:^(BOOL finished) {
  //                             [existingActivityView removeFromSuperview]
  //                             objc_setAssociatedObject (self, &toastActivityViewKey, null, OBJC_ASSOCIATION_RETAIN_NONATOMIC)
  //                         }]
  //    }
  //}
  
  
      member this.ViewForMessage (message:string) (title:string) (image:UIImage) =
          // dynamically build a toast view with any combination of message, title, & image.
  