anchor.diff:                          | _       -> ()
                       d
   
  -    //Restricted Monad
  -    [<Extension>]static member Bind (x:Nullable<_> , f ) = if x.HasValue then f x.Value else Nullable() : Nullable<'b>
  -
       static member inline Invoke x (f:_->'R) : 'R =
           let inline call_3 (a:^a,b:^b,c:^c,f:^f) = ((^a or ^b or ^c) : (static member Bind: _*_ -> _) b, f)
           call_3 (Bind.Instance, x, Unchecked.defaultof<'R>, f) :'R
  
positive.code:     [<Extension>]static member Map_ (x:_ ResizeArray  , f) = Seq.iter f x
  
      // Restricted
      [<Extension>]static member Map_ (x:Nullable<_>    , f) = if x.HasValue then f x.Value else ()
      [<Extension>]static member Map_ (x:string         , f) = String.iter f x
      [<Extension>]static member Map_ (x:StringBuilder  , f) = String.iter f (x.ToString())
      [<Extension>]static member Map_ (x:Set<_>         , f) = Set.iter f x        
  
negative.code:     [<Extension>]static member Map (x:_ IObservable  , f, [<Optional>]impl:Map) = Observable.map f x
  
      // Restricted
      [<Extension>]static member Map (x:string         , f, [<Optional>]impl:Map) = String.map f x
      [<Extension>]static member Map (x:StringBuilder  , f, [<Optional>]impl:Map) = new StringBuilder(String.map f (x.ToString()))
      [<Extension>]static member Map (x:Set<_>         , f, [<Optional>]impl:Map) = Set.map f x
  