futures::select! requires that the streams selected over implement futures::FusedStream. There's a .fuse() method on futures::StreamExt which fuses any stream. The problem is, to use StreamExt::fuse on has to import this trait, and then the .next method collides between async_std::Stream and futures::StreamExt.
See also async-rs/a-chat#1 (comment)