sbool objectDirectlyReferencesObjectOfType(O a, Class c) ctex {
  if (a == null) false;
  if (a instanceof O[])
    for (O x : (O[]) a)
      if (isInstance(c, x))
        true;
  for (Field f : nonStaticNonPrimitiveFieldObjects(a))
    if (isInstance(c, f.get(a)))
      true;
  false;
}