docs: public static Type resolveAt(Object o, TypeVariable<?> var, Map<TypeVariable<?>, Type> variablesMap) {
          final Class<?> rt = Validate.notNull(o, "null target").getClass();
          Validate.notNull(var, "no variable to read");
          final GenericDeclaration genericDeclaration = var.getGenericDeclaration();
          Validate.isInstanceOf(Class.class, genericDeclaration, "%s is not declared by a Class",
              TypeUtils.toLongString(var));
  
          final Class<?> declaring = (Class<?>) genericDeclaration;
          Validate.isInstanceOf(declaring, o, "%s does not belong to %s", TypeUtils.toLongString(var), rt);
  
          return unrollVariables(variablesMap, var, o);
      }