<div dir="ltr">Great, thanks!<div><br></div><div style>I'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"><<a href="mailto:eir@cis.upenn.edu" target="_blank">eir@cis.upenn.edu</a>></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:"Calibri","sans-serif"">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:"Calibri","sans-serif""><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Thanks!<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Richard<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif"">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <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'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'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">> {-# LANGUAGE FlexibleInstances, UndecidableInstances #-}<u></u><u></u></p></div><div><p class="MsoNormal">> {-# LANGUAGE GADTs #-}<u></u><u></u></p>
</div><div><p class="MsoNormal">> {-# LANGUAGE MultiParamTypeClasses #-}<u></u><u></u></p></div><div><p class="MsoNormal">> {-# LANGUAGE TypeFamilies, TypeOperators, ScopedTypeVariables #-}<u></u><u></u></p></div><div>
<p class="MsoNormal">> {-# LANGUAGE FlexibleContexts #-}<u></u><u></u></p></div><div><p class="MsoNormal">> {-# LANGUAGE DataKinds, PolyKinds #-}<u></u><u></u></p></div><div><p class="MsoNormal">> <u></u><u></u></p>
</div><div><p class="MsoNormal">> module A where<u></u><u></u></p></div><div><p class="MsoNormal">> <u></u><u></u></p></div><div><p class="MsoNormal">> import GHC.Generics<u></u><u></u></p></div><div><p class="MsoNormal">
> <u></u><u></u></p></div><div><p class="MsoNormal">> class QA a where<u></u><u></u></p></div><div><p class="MsoNormal">> type QRep a<u></u><u></u></p></div><div><p class="MsoNormal">> type QRep a = QRep (GRep (Rep a))<u></u><u></u></p>
</div><div><p class="MsoNormal">> <u></u><u></u></p></div><div><p class="MsoNormal">> instance QA () where<u></u><u></u></p></div><div><p class="MsoNormal">> type QRep () = ()<u></u><u></u></p></div><div><p class="MsoNormal">
> <u></u><u></u></p></div><div><p class="MsoNormal">> -- Kind-polymorphic proxies;<u></u><u></u></p></div><div><p class="MsoNormal">> data Pr (a :: k) = Pr<u></u><u></u></p></div><div><p class="MsoNormal">> <u></u><u></u></p>
</div><div><p class="MsoNormal">> class (QA (GRep f)) => CaseOf (f :: * -> *) where<u></u><u></u></p></div><div><p class="MsoNormal">> type Alg f r k :: *<u></u><u></u></p></div><div><p class="MsoNormal">
> type GRep f :: *<u></u><u></u></p>
</div><div><p class="MsoNormal">> <u></u><u></u></p></div><div><p class="MsoNormal">> -- Only used for the product structure<u></u><u></u></p></div><div><p class="MsoNormal">> class QA (ProdRep f) => CaseOfProd (f :: * -> *) where<u></u><u></u></p>
</div><div><p class="MsoNormal">> type ProdAlg f r :: *<u></u><u></u></p></div><div><p class="MsoNormal">> 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">> module B where<u></u><u></u></p></div><div><p class="MsoNormal">> 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>