Record syntax and INLINE annotations

Simon Peyton-Jones simonpj at
Fri Jun 13 07:48:05 EDT 2008

can you give an example?  GHC should inline selectors, whether exported or not, whenever it'd help.  They are implicitly defined as INLINE.  Since this obviously isn’t working right, I'd like to see the code.  Perhaps you can boil it down a little, and submit a ticket?


| -----Original Message-----
| From: glasgow-haskell-users-bounces at [mailto:glasgow-haskell-
| users-bounces at] On Behalf Of Bryan O'Sullivan
| Sent: 13 June 2008 06:38
| To: glasgow-haskell-users at
| Subject: Record syntax and INLINE annotations
| I have a curious situation. I've defined a data type using record
| syntax, and my module exports one of the accessor functions. I notice
| that GHC is not inlining any of the others, even though they are not
| exported.
| Furthermore, while poking around to see if I could bend it to my will,
| I found that I couldn't figure out where to place an INLINE annotation
| for an accessor function defined via record syntax such that the
| compiler would accept it.
| For now, I've dropped back to non-record syntax, my hand-crafted
| accessors are being inlined as I'd expect, and I win a few percent in
| performance. If anyone could shed a wee bit of light, I'd be most
| grateful.
| _______________________________________________
| Glasgow-haskell-users mailing list
| Glasgow-haskell-users at

More information about the Glasgow-haskell-users mailing list