`target` should allowed to be nil so you can call the `RACBind` macro on values sent by KVO signals without checking for nil first. But it doesn't need to be explicitly checked. For `keyPath` it was wrong of me to check for it, it's better to just let it go, and let `-addObserver:forKeyPath:options:context:` do the validation.