     - parameter c: An object that implements `ChannelType`
   */
 
-  convenience init<C: ChannelType where C.Element == T>(channelType c: C)
+  convenience init<C: SelectableChannelType where C.Element == T>(channelType c: C)
   {
     if let chan = c as? Chan<T>
     {

  override func close()  { wrapped.close() }

  override func put(newElement: T) -> Bool { return wrapped.send(newElement) }
}

  ChannelTypeAsChan<T,C> disguises any ChannelType as a Chan<T>, for use by Sender<T>
*/

private class ChannelTypeAsChan<T, C: SelectableChannelType where C.Element == T>: Chan<T>
{
  private var wrapped: C

