title: Circular dependency in Scala
body: <p>I have a Scala project A that has an interface (abstract class) I, the implementations of it, and a reference to project B (B.jar). A is packaged with <code>publish-local</code> to be compiled into jar file and stored in a .ivy directory. 
  Project B, in turn, uses the I interface in project B; it compiled into a jar and into a .ivy directory.  </p>
  
  <p>Here come some design questions in Scala:</p>
  
  <ul>
  <li>Is this a circular dependency as A refers to B when B refers to A? </li>
  <li>If the first question is an issue, I guess the simplistic solution is to extract an interface I from A, make it another project to be referenced both by A and B. Isn't this overkill to have a project that has only one interface? Or it's just OK as B references only one class file in A. What's the best practice in Scala? </li>
  </ul>