
I can't guarantee I'll be able to understand things well enough to
take your advice, but I'd be willing to give it a shot. Where would be
the right place to stick this? I am not at all familiar with the GHC
code generation system. Also, what might I have to do to avoid forcing
the same object repeatedly? If I have multiple such constructors, and
someone does
case x of
Con1 (Con2 (Con3 (Con4 y))) -> e
I want to smash this down to something that looks like
case x of y {
_ -> e }
Do I need to worry about this, or will some later C-- pass take care of it?
On Wed, Sep 7, 2016 at 4:46 PM, Simon Peyton Jones
I can advise about how (see comment:9 of #1965). I can only see how to do it in an un-typed way in the back end.
Simon
| -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of David | Feuer | Sent: 07 September 2016 19:33 | To: ghc-devs
| Subject: Feature request bounty | | I'd like to place a small bounty on | https://ghc.haskell.org/trac/ghc/wiki/NewtypeOptimizationForGADTS . | | If someone implements this request by GHC 8.2, I will buy them 24 bottles | of high-end root beer (e.g., Maine Root) or something of similar value | agreeable to both parties. (*) | | Thanks, | David Feuer | | (*) Recipient responsible for customs/duty/taxes/shipping fees beyond | US$10. | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fmail.hask | ell.org%2fcgi-bin%2fmailman%2flistinfo%2fghc- | devs&data=02%7c01%7csimonpj%40microsoft.com%7cf392a423fac6406e1e4408d3d74 | d61be%7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636088699768302440&sda | ta=jfQ62xjhLsZ8okc09JLpi6csdqDV2Y8IiLTvXwb5fN4%3d