It should be possible to do this without the fillSpool method:

```
def iteratorToSpool[K, V](it: Iterator[(K, V)]): Future[Spool[(K, V)]] = Future.value {
  if (it.hasNext)
    it.next *:: iteratorToSpool(it)
  else
    Spool.empty
}
```