anchor.diff:      | Failure errs1, Failure errs2 -> Failure(errs1 @ errs2)
   
   /// If the wrapped function is a success and the given result is a success the function is applied on the value. Otherwise the exisiting error messages are propagated.
  -/// Infix version of Rop.apply
  +/// Infix version of Attempt.apply
   let inline (<*>) wrappedFunction result = apply wrappedFunction result
   
  -/// Lifts a function into a RopResult and applies it on the given result.
  +/// Lifts a function into a AttemptResult and applies it on the given result.
   let inline lift f result = apply (succeed f) result
   
  -/// Lifts a function into a RopResult and applies it on the given result.
  -/// Infix version of Rop.lift
  +/// Lifts a function into a AttemptResult and applies it on the given result.
  +/// Infix version of Attempt.lift
   let inline (<!>) f result = lift f result 
   
   /// If the result is a Success it executes the given function on the value and the messages. Otherwise the exisiting failure is propagated.
  
positive.code: /// Contains functions and a compuation expression build for Railway-oriented programming.
  module Chessie.Rop
  
  open System
  
  /// Railway-oriented programming result - represents the result of a computation
  type RopResult<'TSuccess, 'TMessage> =    
      /// Represents the result of a successful computation
      | Success of 'TSuccess * 'TMessage list
      /// Represents the result of a failed computation
  
negative.code:     either fSuccess fFailure result
  
  /// If the result is a Success it executes the given function on the value. Otherwise the exisiting failure is propagated.
  /// Infix version of Attempt.bind
  let inline (>>=) result f = bind f result
  
  /// If the wrapped function is a success and the given result is a success the function is applied on the value. Otherwise the exisiting error messages are propagated.
  