strict Haskell dialect

Bulat Ziganshin bulatz at
Wed Feb 1 05:49:14 EST 2006

Hello John,

Wednesday, February 01, 2006, 6:48:48 AM, you wrote:

>> On the other hand, if pattern bindings were strict by default, I bet
>> there would be a lot fewer accidental space leaks.

JM> I don't think this is true. I think there would just be a whole lot of a
JM> different type of space leak. Lazy by default is more in the spirit of
JM> haskell.

i had one idea, what is somewhat corresponding to his discussion:

make a strict Haskell dialect. implement it by translating all
expressions of form "f x" into "f $! x" and then going to the standard
(lazy) haskell translator. the same for data fields - add to all field
definitions "!" in translation process. then add to this strict
Haskell language ability to _explicitly_ specify lazy fields and lazy
evaluation, for example using this "~" sign

what it will give? ability to use Haskell as powerful strict language,
what is especially interesting for "real-world" programmers. i have
found myself permanently fighting against the lazyness once i starting to
optimize my programs. for the newcomers, it just will reduce learning
path - they don't need to know anything about lazyness

another interesting application of such a language is to make strict
and lazy versions of data structures just by compiling the same module
in the strict and lazy Haskell modes

Best regards,
 Bulat                            mailto:bulatz at

More information about the Haskell-prime mailing list