I think 3 process combinator is specific to stdin. I don`t see generic use cases that have 3 streams. Most bidirectional communication  IMHO is in/out, err is just specific for stdin/out/err. How about define this as :

```scala 

type ConsoleExchange[R,W] = Exchange[R\/R,W]   //on left any stderr on right any stdout

```