5 Nov
2004
5 Nov
'04
10:28 a.m.
Benjamin Franksen wrote: | > I think hiding the fact that certain objects are not | > constants but functions is a bad idea, because it will break | > sharing in a lazy implementation. | | You probably mean the case where the implicit parameter | is the only one. I don't see why that would "break | sharing in a lazy implementation". The compiler is fully | aware of the complete type of all functions and can use | sharing whenever appropriate. Maybe you misunderstood me. What about: x :: Int x = expensive ?foo The type of x makes it look like a value that can be shared. But really it cannot since it depends on ?foo. How can a compiler share different uses of x? /Koen