Not a dealbreaker, but you can embed the sync.RWMutex, and get somehow nicer callsite semantics...

```go
type AccumulatingBucket struct {
	sync.RWMutex
	elements       priorityQueue
	evictionPolicy EvictionPolicy
	maximumSize    int
}

func (b *AccumulatingBucket) Add(value float64) {
	b.Lock() // ahhh...
	defer b.Unlock()
        // ...
}
```