Extract Payload for enum cases having associated value

The last 2 answers from @Tino synthesize why we shouldn't have synthesized properties:

I'll add:

  • to avoid overloading issues naming should be really weird and verbose. notRequestedWithShouldRequest
  • extensions of Collection, AnyPublisher, Observable, Signal would be impossible
extension Collection where Element: ???? { }

If you believe that having properties will cover more use cases, then we can agree to disagree. Generic function with protocol (similarly to the existent CaseIterable) is in my opinion the way to go, and it is what I'm pitching now. To propose something completely different is acceptable, but I believe it deserve another topic.