code: def sample_f(self, f, *args, **kwargs):
          r
          self._check_samples_available()
          # TODO: can we use np.fromiter here? We would ne the same shape of every member for this!
          return [call_member(M, f, *args, **kwargs) for M in self.samples]
docs: r"""Evaluated method f for all samples
  
          Calls f(\*args, \*\*kwargs) on all samples.
  
          Parameters
          ----------
          f : method reference or name (str)
              Model method to be evaluated for each model sample
  
          args : arguments
              Non-keyword arguments to be passed to the method in each call
  
          kwargs : keyword-argments
              Keyword arguments to be passed to the method in each call
  
          Returns
          -------
          vals : list
              list of results of the method calls