subtle inlining problem
Simon Peyton-Jones
simonpj at microsoft.com
Thu Nov 9 03:29:18 EST 2006
| > The same thing should work in an instance decl, for the same
| > reason, but I have not tried it recently. And, assuming it does
| > work, it ought to be documented. If you check, and send me draft
| > words, I'll add them to the user manual
|
| ok, but i don't undertsand what you mean by "it does work"? should i
| check that without INLINE pragma it's not inlined and with pragma it's
| inlined?
I meant that I'm not 100% sure that an INLINE pragma in an *instance declaration* will cause the method to be inlined. I think it works, but it'd be worth checking.
| also, that you think about changing implementation to that i implied -
| any function equivalent to inlined function, should be also inlined?
Definitely not. It'd be a strange special case. What about
get = id getInteger
or
get = id (id getInteger)
Initially these don't look like "equivalent to inlined function" but they are. What about
get = [getInteger] !! 1
Perhaps you could say that something magic happens when you, the programmer write x=y, and y has an INLINE pragma... but my instinct is to keep GHC's simple, rule.
Simon
More information about the Glasgow-haskell-users
mailing list