 
 /**
   ChanSender<T> wraps a Chan<T> and allows sending through it
-  via a SendingChannel interface.
+  via a SenderType interface.
 */
 
 class ChanSender<T>: Sender<T>

}

/**
  EnclosedSender<T> wraps an object that implements SendingChannel and makes it
  looks like a Sender<T> subclass.

  This is accomplished in wrapping its entire SendingChannel interface in a series of closures.
  While that is probably memory-heavy, it works. WrappedSender uses a generic approach.
*/


}

/**
  ChannelSender<T,C> wraps a ChannelType (as C) and allows sending through it
  via a SenderType interface.
*/

class ChannelSender<T, C: ChannelType where C.ElementType == T>: Sender<T>
