title: Module imports form a cycle
body: <p>Hello i was wondering how do you solve circular dependency in Haskell</p>
  
  <p>I have :<br>
  <strong>Module for a type.</strong><br></p>
  
  <pre><code>module Company where
  
  import Tclass
  
  data Worker=Worker{
      age::Int,
      name::String,
      title::Title,
      income::Int
  }
  
  data Title=Manager | Dev | Tester deriving (Show)
  
  
  data Company=Company{
      cname::String,
      people::[Worker],
      yf::Int
  }
  </code></pre>
  
  <p><strong>Module for the instance of the typeclass</strong><br></p>
  
  <pre><code>module Tclass where
  import System.Environment
  import Company
  
  class Console a where
      wLine::a-&gt;IO()
      rLine::IO String-&gt;a
  
  instance Show Worker where
      show w="to be defined"
      print =putStr . show 
  </code></pre>
  
  <p>If i just want to load the type in ghci and use it ; how do i import them without getting the error:</p>
  
  <pre><code>Module imports form a cycle:
           module `Tclass' (.\Tclass.hs)
          imports `Company' (Company.hs)
    which imports `Tclass' (.\Tclass.hs)
  </code></pre>
  
  <p><strong>P.S</strong> I have tried creating a auxiliary module that imports the two modules and the two modules would import it too,but no luck with this one either :</p>
  
  <pre><code>module Au where
   import Tclass
   import Company
  
  module Company
   import Au
  
  module Tclass 
   import Au
  </code></pre>