anchor.diff:  
       [<Extension>]
       static member Join (c: Choice<'a, string list>, inner: Choice<'b, string list>, outerKeySelector: Func<'a,'c>, innerKeySelector: Func<'b,'c>, resultSelector: Func<'a,'b,'d>) =
  -      Either.returnM (fun a b -> resultSelector.Invoke(a,b)) 
  +      Either.returnM (curry resultSelector.Invoke) 
         |> Validation.ap c 
         |> Validation.ap inner 
   
  
positive.code:     | _ -> None
  
    [<Extension>]
    let TryFind (d: IDictionary<_,_>, key) = tryFind key d
  
  [<Extension>]
  type AsyncExtensions =
      [<Extension>]
      static member SelectMany (o, f: Func<_,_>, mapper: Func<_,_,_>) =
        let mapper = Async.map2 (fun a b -> mapper.Invoke(a,b))
        let v = Async.bind f.Invoke o
        mapper o v
  
  
negative.code: 
      [<Extension>]
      static member SelectMany (o, f: Func<_,_>, mapper: Func<_,_,_>) =
        let mapper = Either.map2 (curry mapper.Invoke)
        let v = Either.bind f.Invoke o
        mapper o v
  
  