code: public static ParameterizedType param(final Class root, final Type[] arguments, final Type owner) {
          return new ParameterizedTypeImpl(root, arguments, owner);
      }
docs: {@code param(SomeList.class, new Type[]{String.class}, param(Root.class, Some.class))
  == Root<String>.SomeList<String>}.
  
  @param root      inner class
  @param arguments inner class generics
  @param owner     owner class (could be also generified)
  @return generified inner class type