export function searchAll<K, V>(x: Map<K, V>, ft: TestFunction<K, V>): K[] {
  var a = [];
  for (var [k, v] of x)
    if (ft(v, k, x)) a.push(k);
  return a;