code: func (d *dispatcher) listeners(targetID, eventName string) (l map[int]Listener) {
  	d.m.Lock()
  	defer d.m.Unlock()
  	l = map[int]Listener{}
  	if _, ok := d.l[targetID]; !ok {
  		return
  	}
  	if _, ok := d.l[targetID][eventName]; !ok {
  		return
  	}
  	for k, v := range d.l[targetID][eventName] {
  		l[k] = v
  	}
  	return
  }
docs: // listeners returns the listeners for a target ID and an event name