anchor.diff:  ----
   
   
  -== Imports for Examples
  +=== Imports for Examples
   All code examples assume the following imports:
   [source,scala,numbered]
   ----
  
positive.code:       println("Writing...")
        oomNewItemBatch.workers(2).flatMap(_.workers(4).map(item => write(item.id, item)))
      }
    } yield oomResult.forall(_ == true)
  }
  ----
  
  
  == Adding progress reporting, retry and throttle control to collection concurrent operations
  +s_mach.concurrent+ allows modifying collection concurrent operations (+serially+, +concurrently+ or +workers+) to
  report progress, retry failures and limit iteration speed to a specific time period.
  
  
negative.code: def writeFail(id: String, item: Item) : Future[Boolean] = Future { Thread.sleep(1000); println(id); throw new RuntimeException(id.toString) }
  ----
  
  === Transforming and traversing collections serially and concurrently
  A common task when working with futures is either transforming or traversing a collection that will call a method that
  returns a future. The standard idiom for performing this task only provides methods for concurrent operation and, with
  enough nesting, leads to difficult to read code:
  