anchor.diff:      return isEmpty.then((result) {
         if (!result) {
           if (recursive) {
  -          return list().toList()
  -              .then((entries) => forEachAsync(
  -                  entries,
  -                  (entry) => entry.delete(recursive: true))
  -              );
  +          return list().forEach((entry) => entry.delete(recursive: recursive));
           }
           throw new FilesystemError.folderNotEmpty(path);
         }
  
positive.code:   Stream<RemoteEntry> list() {
      return filesystem.connection.listObjects(
          filesystem.bucket,
          params: {'prefix': path.substring(1), 'delimiter': _FS_DELIMITER }
      )
      .map((prefixOrObject) =>
          prefixOrObject.fold(
  
negative.code:       if (result) throw new FilesystemError.destinationExists(path);
        return filesystem.connection.copyObject(
            filesystem.bucket,
            _objectName,
            file.filesystem.bucket,
            file._objectName,
            params: {'fields': 'name'});
        })
        .then((obj) => new RemoteFile(file.filesystem, obj.name));
  