check what sort of pull-stream a thing is.
return true if stream is a source.
return true if stream is a sink.
return true if stream is a duplex steam.
a through stream is a sink that returns a source, so don't know if it's not a sink until you pass a source to it.
MIT