code: public SmartBinder foldVoid(SmartHandle function) {
          if (Arrays.equals(signature().argNames(), function.signature().argNames())) {
              return foldVoid(function.handle());
          } else {
              return foldVoid(signature().asFold(void.class).permuteWith(function).handle());
          }
      }
docs: Pass all arguments to the given function and drop any result.
  
  @param function a function which will receive all arguments and have its
  return value inserted into the call chain
  @return a new SmartBinder with the fold applied