code: func (m *ChannelDeMultiplexer) AddChannel(predicate common.MessageAcceptor) chan interface{} {
  	m.lock.Lock()
  	defer m.lock.Unlock()
  	ch := &channel{ch: make(chan interface{}, 10), pred: predicate}
  	m.channels = append(m.channels, ch)
  	return ch.ch
  }
docs: // AddChannel registers a channel with a certain predicate