Netflix/RxJava — pull request #1297 by everpeace (2014-05-31 03:25:59+00:00)
Title: [RxScala] rxjava-scalaz: providing some type class instances.

Introduced 'rxjava-scalaz' project. This project provides some type class instances for Observable.

* _Monoid_:
Observable obviously forms a monoid in terms of concatenation.
* _Functor, Applicative, Monad, MonadPlus_:
Observable can be a Stream-like Monad and can be MonadPlus as well as Monoid.
* _Traverse, Foldable_:
Observable can be Stream-like traversable. Please note that the operations for the instance is blocking calls.
* etc.

About Testing, property based tests are applied by Scalaz's ScalaCheck binding.
For QuickStart, please refer to rx.java.scala.scalaz.examples.RxScalazDemo, or README.md.

### Sample Usages
```scala
import scalaz._, Scalaz._
import rx.lang.scala.Observable
import rx.lang.scala.scalaz._

Observable.items(1, 2) |+| Observable.items(3, 4) // == Observable.items(1 2 3 4)
Observable.items(1, 2) ∘ {_ + 1} // == Observable.items(2, 3)
(Observable.items(1, 2) |@| Observable.items(3, 4)) {_ + _} // == Observable.items(4, 5, 5, 6)
1.η[Observable] // == Observable.items(1)
(Observable.items(3) >>= {(i: Int) => Observable.items(i + 1)}) // Observable.items(4)
```

_My original proposal is #1167_