anchor.diff:          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.
  +/// Collects a sequence of AttemptResults 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
  
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: /// 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)
  
  