code: func NewMuxObserver(qlen, reglen int) *MuxObserver {
  	rv := &MuxObserver{
  		subs:  map[*subObserver]map[chan<- interface{}]bool{},
  		reg:   make(chan taggedRegReq, reglen),
  		input: make(chan taggedObservation, qlen),
  	}
  	go rv.run()
  	return rv
  }
docs: // NewMuxObserver constructs  a new MuxObserver.
  //
  // qlen is the size of the channel buffer for observations sent into
  // the mux observer and reglen is the size of the channel buffer for
  // registration/unregistration events.