Is there any reason that sum isn't strict? I can't think of any case where that is a good thing. Prelude> sum [0 .. 1000000] *** Exception: stack overflow -Keith -- keithsheppard.name