code: private <J, T extends Proxy<J>> T marshalConstructor(final int opcode,
                                                           final J implementation,
                                                           final int version,
                                                           final Class<T> newProxyCls,
                                                           final long argsPointer) {
          try {
              final long wlProxy = WaylandClientCore.INSTANCE()
                                                    .wl_proxy_marshal_array_constructor(this.pointer,
                                                                                        opcode,
                                                                                        argsPointer,
                                                                                        InterfaceMeta.get(newProxyCls).pointer.address);
              return marshalProxy(wlProxy,
                                  implementation,
                                  version,
                                  newProxyCls);
          }
          catch (final NoSuchMethodException |
                  IllegalAccessException |
                  InstantiationException |
                  InvocationTargetException e) {
              throw new RuntimeException("Uh oh, this is a bug!",
                                         e);
          }
      }
docs: called from generated proxies