anchor.diff:  
   
   // MonadPlus class ------------------------------------------------------------
  -open FsControl.Core.Types
   
   module MonadPlus =
       type Mzero = Mzero with
  
positive.code: // Monad class ------------------------------------------------------------
  module Monad =
      type Bind = Bind with
  #if NOTNET35
          static member        instance (Bind, x:seq<_>       , _:seq<'b>      ) = fun (f:_->seq<'b>   ) -> Seq.collect   f x
          static member        instance (Bind, x:Task<'a>     , _:'b Task      ) = fun (f:_->Task<'b>  ) -> x.ContinueWith(fun (x: Task<_>) -> f x.Result).Unwrap()
  #endif
          static member        instance (Bind, x:option<_>    , _:option<'b>   ) = fun (f:_->option<'b>) -> Option.bind   f x
          static member        instance (Bind, x:List<_>      , _:List<'b>     ) = fun (f:_->List<'b>  ) -> List.collect  f x
          static member        instance (Bind, x:_ []         , _:'b []        ) = fun (f:_->'b []     ) -> Array.collect f x
  
negative.code: 
      type Map() =
          inherit MapDefault()
          static member instance (_:Map, x:seq<_>       , _:seq<'b>) = fun f -> Seq.map f x :seq<'b>
          static member instance (_:Map, x:option<_>    , _) = fun f -> Option.map  f x
          static member instance (_:Map, x:List<_>      , _:List<'b>) = fun f -> List.map f x :List<'b>
          static member instance (_:Map, g:_->_         , _) = (>>) g
  