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:         Failure errs 
      either fSuccess fFailure result
  
  /// Collects a sequence of RopResults and accumulates their values. IF the sequence contains an error the error will be propagated.
  let inline collect xs = 
      Seq.fold (fun result next -> 
          match result, next with
  
negative.code: /// Wraps a message in a Failure
  let inline fail msg = Failure([msg])
  
  /// Takes a AttemptResult and maps it with fSuccess if it is a Success otherwise it maps it with fFailure.
  let inline either fSuccess fFailure attemptResult = 
      match attemptResult with
      | Success(x, msgs) -> fSuccess(x,msgs)
      | Failure(msgs) -> fFailure(msgs)
  
  