docs: def ApplyPluginToTypedCollection(plugin, type_names, fetch_fn):
    """Applies instant output plugin to a collection of results.
  
    Args:
      plugin: InstantOutputPlugin instance.
      type_names: List of type names (strings) to be processed.
      fetch_fn: Function that takes a type name as an argument and returns
        available items (FlowResult) corresponding to this type. Items are
        returned as a generator
  
    Yields:
      Bytes chunks, as generated by the plugin.
    """
    for chunk in plugin.Start():
      yield chunk
  
    def GetValues(tn):
      for v in fetch_fn(tn):
        yield v
  
    for type_name in sorted(type_names):
      stored_cls = rdfvalue.RDFValue.classes[type_name]
  
      for chunk in plugin.ProcessValues(stored_cls,
                                        functools.partial(GetValues, type_name)):
        yield chunk
  
    for chunk in plugin.Finish():
      yield chunk