code: func (d *driver) List(ctx context.Context, path string) ([]string, error) {
  	d.mutex.RLock()
  	defer d.mutex.RUnlock()
  
  	normalized := normalize(path)
  
  	found := d.root.find(normalized)
  
  	if !found.isdir() {
  		return nil, fmt.Errorf("not a directory") // TODO(stevvooe): Need error type for this...
  	}
  
  	entries, err := found.(*dir).list(normalized)
  
  	if err != nil {
  		switch err {
  		case errNotExists:
  			return nil, storagedriver.PathNotFoundError{Path: path}
  		case errIsNotDir:
  			return nil, fmt.Errorf("not a directory")
  		default:
  			return nil, err
  		}
  	}
  
  	return entries, nil
  }
docs: // List returns a list of the objects that are direct descendants of the given
  // path.