code: func SleepProvider(currentTime time.Time) TimeProvider {
  	return &sleepableTime{
  		currentTime: currentTime,
  		waiters:     make(map[time.Time][]chan time.Time),
  	}
  }
docs: // SleepProvider returns a TimeProvider that has good fakes for
  // time.Sleep and time.After. Both functions will behave as if
  // time is frozen until you call AdvanceTimeBy, at which point
  // any calls to time.Sleep that should return do return and
  // any ticks from time.After that should happen do happen.