From HaskellWiki
Revision as of 08:54, 19 April 2007 by Simonpj (talk | contribs) (Constructor specialisation for Haskell programs)

Jump to: navigation, search

Talk page for Simon Peyton Jones's papers

If you are kind enough to read one of my papers, you may like to jot down any thoughts it triggers off, and see what others have written. This talk-page lets you do just that. Here's a link back to my home page, from where you can get to all my papers.

There's a section for each paper. If you want to write notes about a paper where there's no section, just go ahead and create a new section.

You can identify your enties by preceding them with four tildes. Doing so adds your name, and the date. Thus:

Simonpj 08:42, 19 April 2007 (UTC) Note from Simon

Constructor specialisation for Haskell programs

Here is the paper.

Brandon Moore: In the second paragraph of section 4, I think "the only question is whether the rewrite rule created in Step *3* is correct". I think the aside in section 4.3, middle of the right column on page 6 should say "(We have dropped some dead code here, although in practice that would not be done until the simplifier runs in Step 3)". Lower on the same page, it looks like the definition of f1 has an extra ')' in "(n - 1))".

I also had a few comments about the content :) About reboxing, it seems like you might be able to specialise, but also pass take the existing value as another argument, and arrange to use that argument instead of reboxing. Maybe it would be too hard to specialise the body that way, I doubt just simplifying a beta-redex would do it (but it does sound a bit like as-patterns). For related work, I wonder if flow-analysis is relevant.

Simonpj 08:54, 19 April 2007 (UTC) Yes, you could do that, but in the example in Section 6.1 showing that "this is too conservative", it'd be bad to pass the boxed version as well. It'd end up as an unused argument, and some subequent transformation would then have to get rid of it.