<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>If you have a practical example of where GHC's current type-level reduction machinery is too slow, please post a bug report. We have only a few real examples of this, and so GHC's implementation is tuned for those examples. With more examples, we can tune more widely.</div><div><br></div><div>Thanks!</div><div>Richard</div><br><div><div>On Feb 7, 2016, at 8:37 AM, Nickolay Kudasov <<a href="mailto:nickolay.kudasov@gmail.com">nickolay.kudasov@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Dear Cafe,<div><br></div><div>I have faced a type-level performance problem (with GHC 7.10.3).</div><div>I am trying to implement type-level Nub which removes duplicates from a type-level list.</div><div><br></div><div>My implementation [1] with an example of a list of length 20 takes forever to compile. If you reduce the size of the example list (e.g. to 15 items), it will compile faster. Also, if you remove the Nub application from exampleVals, it compiles instantly (this is how I know the problem is in Nub).</div><div><br></div><div>My question is how can I speed up type-level Nub?</div><div>And less importantly why exactly is it this slow?</div><div><br></div><div>The practical application for this is building automatic tests [2] for servant-swagger. There I am interested in generating exactly one test for each distinct type.</div><div><br></div><div>Kind regards,</div><div>Nick</div><div><br></div><div>[1] <span><a href="https://gist.github.com/fizruk/06458fe8b62a1e562af1">https://gist.github.com/fizruk/06458fe8b62a1e562af1</a></span></div><div>[2] <a href="http://hackage.haskell.org/package/servant-swagger-1.0.2/docs/Servant-Swagger-Test.html">http://hackage.haskell.org/package/servant-swagger-1.0.2/docs/Servant-Swagger-Test.html</a></div></div>
_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe<br></blockquote></div><br></body></html>