static <A, B> B lookup_first(Map<A, B> map, A... keys) {
  if (map != null && keys != null) for (A key : keys) {
    B b = map.get(key);
    if (b != null) ret b;
  }
  null;
}