# Functions
AssertLocked panics if m is not locked.
AssertRLocked panics if rw is not locked for reading or writing.
AssertWLocked panics if rw is not locked for writing.
ClosedChan returns a channel that's already closed.
NewSemaphore returns a semaphore with resource count n.
NewShardedMap returns a new ShardedMap with the given number of shards and sharding function.
NewWaitGroupChan returns a new single-use WaitGroupChan.
# Structs
AtomicValue is the generic version of [atomic.Value].
Map is a Go map protected by a [sync.RWMutex].
Pool is the generic version of [sync.Pool].
Semaphore is a counting semaphore.
ShardedMap is a synchronized map[K]V, internally sharded by a user-defined K-sharding function.
WaitGroup is identical to [sync.WaitGroup], but provides a Go method to start a goroutine.
WaitGroupChan is like a sync.WaitGroup, but has a chan that closes on completion that you can wait on.