Я пытаюсь понять детали RxJava.
Интуитивно я ожидал, что first() и take(1) будут равны и будут делать то же самое. Однако путем копания в исходном коде first() определяется как take(1).single().
Что такое single() здесь хорошо? Не позволяет take(1) гарантировать вывод одного элемента?