static L flattenList2(O... a) {
  new L l;
  if (a != null) for (O x : a)
    if (x instanceof Collection)
      for (O sub : (Collection) x)
        l.addAll(flattenList2(sub));
    else if (x != null)
      l.add(x);
  ret l;
}