I think instead of:

```javascript
.then(function (paths) { return deferred.map(paths, deferred.gate(fn)); })
```

It's better to use `.map` extension on promise directly:

```javascript
.map(deferred.gate(fn))
```