I think we can do 

```scala 


Exchange.console() : Exchange[Bytes \/ Bytes,Bytes]

Exchange.stdin(): Exchange[Bytes ,Bytes]


Exchange.stderr() : Exchange[Bytes ,Bytes]

// then define line-aware combinators. 
Exchange.lines(ex:Exchange[Bytes,Bytes]) : Exchange[String,String]
Exchange.lines(ex:Exchange[Bytes\/Bytes,Bytes]) : Exchange[String \/ String,String]


```