ReactiveCocoa/ReactiveCocoa — pull request #936 by jspahrsummers (2013-11-12 09:18:21+00:00)
Title: [WIP] Signal generators

**:warning: NOT READY TO MERGE :warning:**

A simpler, slightly more intuitive version of the `RACSignalProvider` class suggested in #874.

The basic idea is that a "signal generator" (terminology completely up for debate) represents an arrow `a ~> Signal b`. The pure form is equivalent to a Kleisli arrow; _however_, `RACSignalGenerator` explicitly supports subclassing to add impure behaviors. The result is sorta like an object-oriented version of `-[RACSignal bind:]`, which may be easier to understand for OO programmers.

One particular example, `RACTransactionSignalGenerator` (name also not final), takes advantage of state to recover `RACCommand.executionSignals`-like behavior after its deprecation in #910. I'm still having a somewhat difficult time foreseeing how this will be used, but its general utility is much more clear to me now.

Signal generators — and `-initWithReflexiveBlock:` in particular — will make it easier to implement [lazily-generated, indefinite signals](https://gist.github.com/jspahrsummers/5032383).

Thoughts?

@jonsterling @paulcbetts @robrix