<div dir="ltr">Great, thanks!<div><br></div><div style>I&#39;ve made a ticket:</div><div style><a href="http://hackage.haskell.org/trac/ghc/ticket/8002">http://hackage.haskell.org/trac/ghc/ticket/8002</a><br></div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">2013/6/21 Richard Eisenberg <span dir="ltr">&lt;<a href="mailto:eir@cis.upenn.edu" target="_blank">eir@cis.upenn.edu</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div lang="EN-GB" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">If the problem is happening in HEAD, it’s a legitimate bug. Please file a report and I’ll take a look at it, as I’m in that area of the codebase right now.<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Thanks!<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Richard<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u> <u></u></span></p>

<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;"> <a href="mailto:glasgow-haskell-users-bounces@haskell.org" target="_blank">glasgow-haskell-users-bounces@haskell.org</a> [mailto:<a href="mailto:glasgow-haskell-users-bounces@haskell.org" target="_blank">glasgow-haskell-users-bounces@haskell.org</a>] <b>On Behalf Of </b>Jeroen Weijers<br>

<b>Sent:</b> 21 June 2013 09:01<br><b>To:</b> <a href="mailto:glasgow-haskell-users@haskell.org" target="_blank">glasgow-haskell-users@haskell.org</a><br><b>Subject:</b> Type families causing the compiler to hang on recompilation<u></u><u></u></span></p>

<div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Hello,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I am having a problem with (re)compiling some code I have. I have two modules A and B. In A I have some classes and instances and B uses this. When I try to compile B (with cabal or ghc --make) the first time everything works. When I now modify B (add a space) B is recompiled but the compiler hangs and doesn&#39;t seems to be doing anything.<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I have tested the problem with GHC (x86_64) 7.6.2. 7.6.3 and HEAD.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div>

<div><p class="MsoNormal">It seems to be very similar to a problem I had earlier: <a href="http://hackage.haskell.org/trac/ghc/ticket/7321" target="_blank">http://hackage.haskell.org/trac/ghc/ticket/7321</a><u></u><u></u></p>

</div><div><p class="MsoNormal">but this time there are no GADTs involved.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">The code of module A (clutter that doesn&#39;t contribute to the problem has been removed):<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><p class="MsoNormal">&gt; {-# LANGUAGE FlexibleInstances, UndecidableInstances     #-}<u></u><u></u></p></div><div><p class="MsoNormal">&gt; {-# LANGUAGE GADTs                 #-}<u></u><u></u></p>

</div><div><p class="MsoNormal">&gt; {-# LANGUAGE MultiParamTypeClasses #-}<u></u><u></u></p></div><div><p class="MsoNormal">&gt; {-# LANGUAGE TypeFamilies, TypeOperators, ScopedTypeVariables #-}<u></u><u></u></p></div><div>

<p class="MsoNormal">&gt; {-# LANGUAGE FlexibleContexts #-}<u></u><u></u></p></div><div><p class="MsoNormal">&gt; {-# LANGUAGE DataKinds, PolyKinds #-}<u></u><u></u></p></div><div><p class="MsoNormal">&gt; <u></u><u></u></p>

</div><div><p class="MsoNormal">&gt; module A where<u></u><u></u></p></div><div><p class="MsoNormal">&gt; <u></u><u></u></p></div><div><p class="MsoNormal">&gt; import GHC.Generics<u></u><u></u></p></div><div><p class="MsoNormal">

&gt; <u></u><u></u></p></div><div><p class="MsoNormal">&gt; class QA a where<u></u><u></u></p></div><div><p class="MsoNormal">&gt;   type QRep a<u></u><u></u></p></div><div><p class="MsoNormal">&gt;  type QRep a = QRep (GRep (Rep a))<u></u><u></u></p>

</div><div><p class="MsoNormal">&gt; <u></u><u></u></p></div><div><p class="MsoNormal">&gt; instance QA () where<u></u><u></u></p></div><div><p class="MsoNormal">&gt;   type QRep () = ()<u></u><u></u></p></div><div><p class="MsoNormal">

&gt; <u></u><u></u></p></div><div><p class="MsoNormal">&gt; -- Kind-polymorphic proxies;<u></u><u></u></p></div><div><p class="MsoNormal">&gt; data Pr (a :: k) = Pr<u></u><u></u></p></div><div><p class="MsoNormal">&gt; <u></u><u></u></p>

</div><div><p class="MsoNormal">&gt; class (QA (GRep f)) =&gt; CaseOf (f :: * -&gt; *) where<u></u><u></u></p></div><div><p class="MsoNormal">&gt;     type Alg f r k :: *<u></u><u></u></p></div><div><p class="MsoNormal">
&gt;     type GRep f :: *<u></u><u></u></p>
</div><div><p class="MsoNormal">&gt; <u></u><u></u></p></div><div><p class="MsoNormal">&gt; -- Only used for the product structure<u></u><u></u></p></div><div><p class="MsoNormal">&gt; class QA (ProdRep f) =&gt; CaseOfProd (f :: * -&gt; *) where<u></u><u></u></p>

</div><div><p class="MsoNormal">&gt;   type ProdAlg f r :: *<u></u><u></u></p></div><div><p class="MsoNormal">&gt;   type ProdRep f :: *<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">

The code of module B:<u></u><u></u></p></div><div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">&gt; module B where<u></u><u></u></p></div><div><p class="MsoNormal">&gt; import qualified A<u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Given that the code type checks (and if I do not recompile and make an executable directly it actually works) I think this is a bug that might be similar to the bug mentioned in ticket 7321. <u></u><u></u></p>

</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Does anybody recognise the problem? Should I create a ticket?<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div>

<p class="MsoNormal">Cheers,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Jeroen Weijers<u></u><u></u></p></div></div></div></div></div></div></div></div></blockquote>

</div><br></div>