code: func (m *Mux) Channel(source string) chan interface{} {
  	if len(source) == 0 {
  		panic("Channel given an empty name")
  	}
  	m.sourceLock.Lock()
  	defer m.sourceLock.Unlock()
  	channel, exists := m.sources[source]
  	if exists {
  		return channel
  	}
  	newChannel := make(chan interface{})
  	m.sources[source] = newChannel
  	go util.Until(func() { m.listen(source, newChannel) }, 0, util.NeverStop)
  	return newChannel
  }
docs: // Channel returns a channel where a configuration source
  // can send updates of new configurations. Multiple calls with the same
  // source will return the same channel. This allows change and state based sources
  // to use the same channel. Different source names however will be treated as a
  // union.