export function searchValueAll<K, V, W=V>(x: Map<K, V>, v: V, fc: CompareFunction<V|W> | null=null, fm: MapFunction<K, V, V|W> | null=null): K[] {
  var fc = fc || COMPARE;
  var fm = fm || IDENTITY;
  var w  = fm(v, null, null), a = [];
  for(var [k, u] of x) {