patch applied (haskell-prime-status): BangPatterns: probably accept ==> undecided

Don Stewart dons at
Wed Apr 16 11:06:28 EDT 2008

> Tue Apr 15 11:12:08 PDT 2008  Simon Marlow <simonmarhaskell at>
>   * BangPatterns: probably accept ==> undecided
>     M ./status.hs -2 +3

I think we absolutely must have a story on bang patterns for H'.

They're now very widely used in low level code, where we either don't trust, or
need to tune, the strictness analyser. 

And using CPP for this is just not acceptable, and I still cry a little inside
when I have to use

    #define STRICT1(f) f a | a `seq` False = undefined
    #define STRICT2(f) f a b | a `seq` b `seq` False = undefined
    #define STRICT3(f) f a b c | a `seq` b `seq` c `seq` False = undefined

    f x y = ...

to achieve portability to Hugs/nhc98 of Data.ByteString.

In the list of features "required for Haskell in practice", bang patterns are
way up there.

-- Don

More information about the Haskell-prime mailing list