code: func mkdir(am auth.AuthMode, children []blob.Ref) (blob.Ref, error) {
  	cl, err := client.New(client.OptionAuthMode(am))
  	if err != nil {
  		return blob.Ref{}, err
  	}
  	var newdir blob.Ref
  	ss := schema.NewStaticSet()
  	subsets := ss.SetStaticSetMembers(children)
  	for _, v := range subsets {
  		// TODO(mpl): make them concurrent
  		if _, err := cl.UploadBlob(context.TODO(), v); err != nil {
  			return newdir, err
  		}
  	}
  	ssb := ss.Blob()
  	if _, err := cl.UploadBlob(context.TODO(), ssb); err != nil {
  		return newdir, err
  	}
  	const fileNameLayout = "20060102150405"
  	fileName := "shared-" + time.Now().Format(fileNameLayout)
  	dir := schema.NewDirMap(fileName).PopulateDirectoryMap(ssb.BlobRef())
  	dirBlob := dir.Blob()
  	if _, err := cl.UploadBlob(context.TODO(), dirBlob); err != nil {
  		return newdir, err
  	}
  
  	return dirBlob.BlobRef(), nil
  }
docs: // mkdir creates a new directory blob, with children composing its static-set,
  // and uploads it. It returns the blobRef of the new directory.