As GR is maturing, we get more support
for complex blocks with nontrivial input/output relationships. The
option to 'produce' inside the ::work function is a major step in this
direction. Consider a block with two outputs: one at 1:1 rate, and
one at N:1 rate. It may be useful to allow set_relative_rate to take
in a input/output port. Of course, the scheduler would have to do
something with the new information.