code: func (r *Ring) Dequeue() interface{} {
  	r.Lock()
  	defer r.Unlock()
  
  	r.checkInit()
  	if r.head == -1 {
  		return nil
  	}
  	v := r.get(r.tail)
  	if r.tail == r.head {
  		r.head = -1
  		r.tail = 0
  	} else {
  		r.tail = r.mod(r.tail + 1)
  	}
  	return v
  }
docs: /*
  Dequeue a value from the Ring buffer.
  
  Returns nil if the ring buffer is empty.
  */