twitter/algebird — pull request #221 by andrewnguyen (2013-10-15 20:26:44+00:00)
Title: Implement Semigroup#parSumOption

This change implements parSumOption which should return the same thing as sumOption, except wrapped inside a **scala** Future and with the execution done (hopefully) in parallel. If the user needs to use a Twitter Future, there is a bijection for that. I chose to not use an Int generator in the tests because I figured that doing so would really slow down testing but I can do something like

```scala
def semigroupParSumWorks[T: Semigroup:Arbitrary:Equiv] = forAll { (in: List[T], blockSize: Int) =>
Equiv[Option[T]].equiv(Await.result(Semigroup.parSumOption(in, blockSize), Duration.Inf), Semigroup.sumOption(in))
}
```

if it's preferred.