slight difference in strictness between -O0 and -O

Kirsten Chevalier catamorphism at
Mon Mar 12 17:53:47 EDT 2007

On 3/12/07, Kirsten Chevalier <catamorphism at> wrote:
> On 3/12/07, Albert Y. C. Lai <trebla at> wrote:
> > main = print (map (const 'x') (take 1 (undefined:undefined)))
> >
> > In ghci, or with ghc -O0, this produces "x".
> > With ghc -O, this produces Prelude.undefined.
> >
> What version of ghc?

I was curious, so I checked this against ghc 6.6. Indeed, it exhibits
the behavior Albert describes above. Same goes for the HEAD. In ghc
6.4.2, however, the program prints "x" whether compiled with -O or

This does seem like a bug to me.


Kirsten Chevalier* chevalier at *Often in error, never in doubt
"Live fast, love hard, and wear corrective lenses if you need them."
--Webb Wilder

More information about the Glasgow-haskell-users mailing list