docs: public static Object selectMethod(MutableCallSite callSite, Class sender, String methodName, int callID, Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments) throws Throwable {
              Selector selector = Selector.getSelector(callSite, sender, methodName, callID, safeNavigation, thisCall, spreadCall, arguments); 
              selector.setCallSiteTarget();
  
              MethodHandle call = selector.handle.asSpreader(Object[].class, arguments.length);
              call = call.asType(MethodType.methodType(Object.class,Object[].class));
              return call.invokeExact(arguments);
          }