title: Does Frege solve the issue of "re-export qualified" of Haskell?
body: <p>The issue in Haskell: </p>
  
  <blockquote>
  <pre><code>module Foo.A where
  
  foo = 42
  </code></pre>
    
    <p>and</p>
  
  <pre><code>module Foo.B where
  
  foo = 12
  </code></pre>
    
    <p>and you want to write a super module</p>
  
  <pre><code>module Foo (
        module Foo.A
      , module Foo.B
      ) where
  
  import Foo.A
  import Foo.B
  </code></pre>
    
    <p>which re-exports those modules, you would get a name clash.</p>
  </blockquote>
  
  <p>Note, there can be <strong>plenty of the functions like <code>foo</code></strong> in each module (foo1, foo2, etc) and I want to use them from both modules. There can also be <code>data</code>s with the same member names in each module, after all. So hiding isn't a solution. 
  I do <strong>not</strong> consider Lens for resolving it.</p>
  
  <p>Now, does Frege solve the problem of "re-export qualified" of Haskell? It seems it does if I remember correctly, but I can't find the evidence now, can anyone elaborate on that?</p>