async function asyncFilter(arr, predicate, options) {
  return Promise.all(arr.map((token) => predicate(token, options))).then((results) =>
    arr.filter((_, index) => results[index]),
  );
}
@param {Token[]} arr
@param {Filter['filter']} predicate
@param {Config} options