title: In Swift, can you find all types in a module that adhere to a specific protocol?
body: <p>In Swift 4, is it possible to find all types within the current module which adhere to a specific protocol?</p>
  
  <p>For instance, say I've defined this protocol and these classes:</p>
  
  <pre><code>protocol Animal{}
  protocol Vehicle{}
  protocol Favorite{}
  
  class Dog : Animal{
  }
  
  class Cat : Animal, Favorite{
  }
  
  class Car : Vehicle{
  }
  
  class Bicycle : Vehicle, Favorite{
  }
  </code></pre>
  
  <p>I want to find all types that implement <code>Favorite</code>.  This can be easily done in C#, but I’m not sure if you can in Swift.</p>
  
  <ul>
  <li>Cat</li>
  <li>Bicycle</li>
  </ul>
  
  <p>If it helps, I'm using Swift 4.</p>