title: Is it possible to guarantee that the enums has a specific case?
body: <p>I have a protocol:</p>
  
  <pre><code>protocol ReduxTransition {}
  </code></pre>
  
  <p>I have a enums:</p>
  
  <pre><code>enum ProfileTransition: ReduxTransition {
     case authorization
     ...
     case showNotification(NotificationType)
  } 
  
  enum RatingTransition: ReduxTransition {
     case pop
     ...
     case showNotification(NotificationType)
  }
  </code></pre>
  
  <p>And I want to do stuff like this to avoid using similar implementations for showing notifications</p>
  
  <pre><code>func processError(performTransition: @escaping (ReduxTransition) -&gt; ()) {
     var notification: NotificationType!
     performTransition(.showNotification(notification))
  }
  </code></pre>