anchor.diff:  
       /// Appends the given messages with the messages in the given result.
       let inline mergeMessages msgs result = 
  -        let inline fSuccess (x, msgs2) = Ok(x, msgs @ msgs2)
  +        let inline fSuccess (x, msgs2) = Okay(x, msgs @ msgs2)
           let inline fFailure errs = Fail(errs @ msgs)
           either fSuccess fFailure result
   
  
positive.code:     /// If the result is a Failure it executes the given failure function on the messages.
      /// Result is propagated unchanged.
      let inline eitherTee fSuccess fFailure result =
          let inline tee f x =
              f x
              x
          tee (either fSuccess fFailure) result
  
      /// If the result is a Success it executes the given function on the value and the messages.
  
negative.code:     [<Extension>]
      static member FailedWith(this:Result<'TSuccess, 'TMessage>) = 
          match this with
          | Okay(v,msgs) -> failwithf "Result was a success: %A - %s" v (String.Join(Environment.NewLine, msgs |> Seq.map (fun x -> x.ToString())))
          | Fail(msgs) -> msgs
  
      /// Returns the result or fails if the result was an error.
      [<Extension>]
      static member SucceededWith(this:Result<'TSuccess, 'TMessage>) : 'TSuccess = 
          match this with
          | Okay(v,msgs) -> v
          | Fail(msgs) -> failwithf "Result was an error: %s" (String.Join(Environment.NewLine, msgs |> Seq.map (fun x -> x.ToString())))