code: def gather_from_ingredients(wrapped, instance=None, args=None, kwargs=None):
      
      for item in instance._gather(wrapped):
          yield item
docs: Decorator that calls `_gather` on the instance the wrapped function is
      bound to (should be an `Ingredient`) and yields from the returned
      generator.
  
      This function is necessary, because `Ingredient._gather` cannot directly be
      used as a decorator inside of `Ingredient`.