code: func (mux *TypeMux) Post(ev interface{}) error {
  	event := &TypeMuxEvent{
  		Time: time.Now(),
  		Data: ev,
  	}
  	rtyp := reflect.TypeOf(ev)
  	mux.mutex.RLock()
  	if mux.stopped {
  		mux.mutex.RUnlock()
  		return ErrMuxClosed
  	}
  	subs := mux.subm[rtyp]
  	mux.mutex.RUnlock()
  	for _, sub := range subs {
  		sub.deliver(event)
  	}
  	return nil
  }
docs: // Post sends an event to all receivers registered for the given type.
  // It returns ErrMuxClosed if the mux has been stopped.