docs: def _fun_names_iter(self, functyp, val):
          """Iterate over the names of the functions in ``val``,
          adding them to ``funcstore`` if they are missing;
          or if the items in ``val`` are already the names of functions
          in ``funcstore``, iterate over those.
  
          """
          funcstore = getattr(self.engine, functyp)
          for v in val:
              if callable(v):
                  # Overwrites anything already on the funcstore, is that bad?
                  setattr(funcstore, v.__name__, v)
                  yield v.__name__
              elif v not in funcstore:
                  raise KeyError("Function {} not present in {}".format(
                      v, funcstore._tab
                  ))
              else:
                  yield v