The reason why this fails is because you can't initialize a bus with `var bus*
= Bus(fsBus: newFutureStream[Message[T]](fromProc = "main"))` because
`Message[T]` isn't valid as an instantiated type. You can create generics, but
you still can't fix different instantiations, so having a `seq[T]` where you
add both ints and strings for example is not possible. The same way you can't
create a `FutureStream` with `Message[T]`, but you can create one with
`Message[int]` for example and just receive integers through it. If you need to
receive different data-types you more or less have to use variant objects like
you do with `case` above.