`defer` reads as follows:

```objc
+ (RACSignal *)defer:(RACSignal * (^)(void))block {
	NSCParameterAssert(block != NULL);
	return [[RACSignal createSignal:^(id<RACSubscriber> subscriber) {
		return [block() subscribe:subscriber];
	}] setNameWithFormat:@"+defer:"];
}
```

I have to learn more about `RACSubscriber`, I suppose, though as far as I ca tell it's essentially "glue" used when calling `subscribeNext:` and friends.

But anyway, I can see that this creates a "proxy" signal that uses `RACSignal`'s underlying magic to call the block, creating the original signal, only when someone subscribes to the "proxy".

What is the benefit of this? I thought signals were lazily evaluated anyway?