docs: def listPromise(*args):
      """
      A special function that takes a bunch of promises
      and turns them into a promise for a vector of values.
      In other words, this turns an list of promises for values
      into a promise for a list of values.
      """
      ret = Promise()
  
      def handleSuccess(v, ret):
          for arg in args:
              if not arg.isFulfilled():
                  return
  
          value = map(lambda p: p.value, args)
          ret.fulfill(value)
  
      for arg in args:
          arg.addCallback(lambda v: handleSuccess(v, ret))
          arg.addErrback(lambda r: ret.reject(r))
  
      # Check to see if all the promises are already fulfilled
      handleSuccess(None, ret)
  
      return ret