function mapIterator (it, callback) {
  return {
    next: () => {
      const n = it.next()
      return (n.done)
        ? n
        : {
            value: callback(n.value),
            done: false
          }
    }
  }
}
Create a new iterator that maps over the provided iterator, applying a mapping function to each item