code: func NewWAL(path string) *WAL {
  	logger := zap.NewNop()
  	return &WAL{
  		path: path,
  
  		// these options should be overriden by any options in the config
  		SegmentSize: DefaultSegmentSize,
  		closing:     make(chan struct{}),
  		syncWaiters: make(chan chan error, 1024),
  		limiter:     limiter.NewFixed(defaultWaitingWALWrites),
  		logger:      logger,
  		traceLogger: logger,
  		tracker:     newWALTracker(newWALMetrics(nil), nil),
  	}
  }
docs: // NewWAL initializes a new WAL at the given directory.