Corrected channel interfaces:
- producer returns channel producer
- consumer returns a constructed consumer object to be used with the
accept callback provided