Can you not "flatten" the stream into an `Observable[T]` before de-duping it? It would make `Unseen` more general and simpler.