title: Where should shared interfaces in Prism be placed?
body: <p>I understand this could be interpreted as an opinion question, but it is technical and a problem I am currently trying to solve.</p>
  
  <p>In the Prism documentation, it is stated that modules should have loose coupling with no direct references, only going through shared interfaces. Like in the following picture:</p>
  
  <p><img src="https://i.stack.imgur.com/DD78m.png" alt="Module dependencies"></p>
  
  <p>My issue is, if only a few modules required an <code>IOrdersRepository</code>, the infrastructure is the wrong place for it, as this contains shared code for all of the modules. If I placed the interface in another module, then both modules will need to directly reference that one, breaking the loose coupling. </p>
  
  <p>Should I simply create a library which contains this interface and doesn't follow the module pattern?</p>
  
  <p>Thanks,
  Luke</p>