I see the original documentation from `+if:then:else:` isn't quite right, and the mistake has been propagated above. The resulting signal will send `completed` once **both** the source signal (`signal`), and the currently switched signal have completed. This is based on how `-switchToLatest` is implemented. Actually, a quick look shows that `-switchToLatest` also doesn't document this behavior.