docs: def add_step(step_name, func):
      """
      Add a step function to Orca.
  
      The function's argument names and keyword argument values
      will be matched to registered variables when the function
      needs to be evaluated by Orca.
      The argument name "iter_var" may be used to have the current
      iteration variable injected.
  
      Parameters
      ----------
      step_name : str
      func : callable
  
      """
      if isinstance(func, Callable):
          logger.debug('registering step {!r}'.format(step_name))
          _STEPS[step_name] = _StepFuncWrapper(step_name, func)
      else:
          raise TypeError('func must be a callable')