docs: def _bootstrapped_fit_iter(
          fitter_args_kargs, n=None, datalist=None, pdatalist=None, **kargs
          ):
          """ Iterator that returns bootstrap copies of a fit.
  
          Bootstrap iterator for |MultiFitter| fits analogous to
          :meth:`lsqfit.bootstrapped_fit_iter`. The bootstrap uses the
          same parameters as the last fit done by the fitter unless they
          are overridden by ``kargs``.
  
          Args:
              n (int): Maximum number of iterations if ``n`` is not ``None``;
                  otherwise there is no maximum. Default is ``None``.
              datalist (iter): Collection of bootstrap data sets for fitter.
              pdatalist (iter): Collection of bootstrap processed data sets for
                  fitter.
              kargs (dict): Overrides arguments in original fit.
  
          Returns:
              Iterator that returns an |nonlinear_fit| object
              containing results from the fit to the next data set in
              ``datalist``.
  
          """
          fitter, args, okargs = fitter_args_kargs
          for k in okargs:
              if k not in kargs:
                  kargs[k] = okargs[k]
          if 'p0' not in kargs:
              kargs['p0'] = args['p0']
          if datalist is not None:
              pdatalist = (
                  MultiFitter.process_data(d, args['models']) for d in datalist
                  )
          elif pdatalist is None:
              pdata = args['pdata']
              if pdata is None:
                  pdata = MultiFitter.process_data(args['data'], args['models'])
              pdatalist = gvar.bootstrap_iter(pdata, n)
          i = 0
          for pdata in pdatalist:
              i += 1
              if n is not None and i > n:
                  break
              fit = fitter(pdata=pdata, prior=args['prior'], **kargs)
              yield fit