code: func multiExtractor(extractors ...empire.ProcfileExtractor) empire.ProcfileExtractor {
  	return empire.ProcfileExtractorFunc(func(ctx context.Context, image image.Image, w *jsonmessage.Stream) ([]byte, error) {
  		for _, extractor := range extractors {
  			p, err := extractor.ExtractProcfile(ctx, image, w)
  
  			// Yay!
  			if err == nil {
  				return p, nil
  			}
  
  			// Try the next one
  			if _, ok := err.(*empire.ProcfileError); ok {
  				continue
  			}
  
  			// Bubble up the error
  			return p, err
  		}
  
  		return nil, &empire.ProcfileError{
  			Err: errors.New("no suitable Procfile extractor found"),
  		}
  	})
  }
docs: // multiExtractor is an Extractor implementation that tries multiple Extractors
  // in succession until one succeeds.