<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I suspect that you spent a good deal of time in search of this knowledge.<div class=""><br class=""></div><div class="">Is there something in this code that could have helped you do this faster? Unfortunately, the water in flatten_args is indeed deep, and I don't think there's any way to fix that. I've considered writing a peer-reviewed paper just to explain that one function, but decided that no one would care enough to read it (though implementors of other dependently typed languages likely have had to do similar).</div><div class=""><br class=""></div><div class="">Richard<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 5, 2019, at 11:46 PM, Nicolas Frisby <<a href="mailto:nicolas.frisby@gmail.com" class="">nicolas.frisby@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div class="">While developing a typechecker plugin, I experienced this error message.<br class=""><br class="">> ghc: panic! (the 'impossible' happened)</div><div class="">>   (GHC version 8.6.2 for x86_64-unknown-linux):</div><div class="">> <span style="white-space:pre" class="">  </span>flatten_args wandered into deeper water than usual</div><div class="">>   Call stack:</div><div class="">>       CallStack (from HasCallStack):</div><div class="">>         callStackDoc, called at compiler/utils/Outputable.hs:1160:37 in ghc:Outputable</div><div class="">>         pprPanic, called at compiler/typecheck/TcFlatten.hs:1331:24 in ghc:TcFlatten</div><div class="">> </div><div class="">> Please report this as a GHC bug:  <a href="http://www.haskell.org/ghc/reportabug" class="">http://www.haskell.org/ghc/reportabug</a></div></div><div class=""><br class=""></div><div class="">I'm sending this email just in case a dev is curious how this panic arises or if another plugin developer sees the same thing -- the error message is not very informative, and the corresponding GHC source code is a bit obtuse.</div><div class=""><br class=""></div><div class="">Based on the relevant GHC source code and my recent plugin edits, I was able to guess correctly that this was due to me generating an extra sort argument to a promoted datacon. Specifically, I was incorrectly using</div><div class=""><br class=""></div><div class="">> mkTyConApp (promoteDataCon _) [typeKind k,k,...]<br class=""></div><div class=""><br class=""></div><div class="">instead of just</div><div class=""><br class=""></div><div class="">> mkTyConApp (promoteDataCon _) [k,...]</div><div class=""><br class=""></div><div class="">Thanks! HTH. -Nick</div></div></div></div>
_______________________________________________<br class="">ghc-devs mailing list<br class=""><a href="mailto:ghc-devs@haskell.org" class="">ghc-devs@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs<br class=""></div></blockquote></div><br class=""></div></body></html>