code: func New(after time.Duration) func(f func()) {
  	d := &debouncer{after: after}
  
  	return func(f func()) {
  		d.add(f)
  	}
  }
docs: // New returns a debounced function that takes another functions as its argument.
  // This function will be called when the debounced function stops being called
  // for the given duration.
  // The debounced function can be invoked with different functions, if needed,
  // the last one will win.