static Pair<Class, Int> arrayTypeAndDimensions(O o) {
  ret arrayTypeAndDimensions(_getClass(o));
}

static Pair<Class, Int> arrayTypeAndDimensions(Class c) {
  if (c == null || !c.isArray()) null;
  Class elem = c.getComponentType();
  if (elem.isArray())
    ret mapPairB(arrayTypeAndDimensions(elem), dim -> dim+1);
  ret pair(elem, 1);
}