code: func NewFIFO(keyFunc KeyFunc) *FIFO {
  	f := &FIFO{
  		items:   map[string]interface{}{},
  		queue:   []string{},
  		keyFunc: keyFunc,
  	}
  	f.cond.L = &f.lock
  	return f
  }
docs: // NewFIFO returns a Store which can be used to queue up items to
  // process.