
Hi Gabi The seq is not forcing the strictness that you are expecting. A tail recursive accumulator version is comparable to foldl' (I'm not sure which other pieces out of the bag of strictness tricks deepseq, etc would get the same results without the accumulator). Best wishes Stephen All versions compiled with -O2... module Main where mySum :: [Integer] -> Integer mySum xs0 = step 0 xs0 where step a [] = a step a (x:xs) = let a' = a+x in a' `seq` step a' xs main = do putStrLn "mySum tail-rec:" putStrLn $ "mySum [1..10^6]:" ++ show (mySum [1..10^6]) ----------------- $ ./MySumTR.exe +RTS -sstderr -RTS d:\coding\haskell\cafe\MySumTR.exe +RTS -sstderr mySum tail-rec: mySum [1..10^6]:500000500000 100,439,096 bytes allocated in the heap 16,572 bytes copied during GC 3,276 bytes maximum residency (1 sample(s)) 11,944 bytes maximum slop 1 MB total memory in use (0 MB lost due to fragmentation) Generation 0: 192 collections, 0 parallel, 0.00s, 0.00s elapsed Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed INIT time 0.02s ( 0.00s elapsed) MUT time 0.33s ( 0.33s elapsed) GC time 0.00s ( 0.00s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 0.34s ( 0.33s elapsed) %GC time 0.0% (0.0% elapsed) Alloc rate 292,186,461 bytes per MUT second Productivity 95.5% of total user, 100.0% of total elapsed ----------------------------- $ ./SeqFoldl.exe +RTS -sstderr -RTS d:\coding\haskell\cafe\SeqFoldl.exe +RTS -sstderr sum (foldl'): sum [1..10^6]:500000500000 100,438,952 bytes allocated in the heap 16,572 bytes copied during GC 3,276 bytes maximum residency (1 sample(s)) 11,944 bytes maximum slop 1 MB total memory in use (0 MB lost due to fragmentation) Generation 0: 192 collections, 0 parallel, 0.03s, 0.03s elapsed Generation 1: 1 collections, 0 parallel, 0.00s, 0.00s elapsed INIT time 0.02s ( 0.00s elapsed) MUT time 0.30s ( 0.30s elapsed) GC time 0.03s ( 0.03s elapsed) EXIT time 0.00s ( 0.00s elapsed) Total time 0.34s ( 0.33s elapsed) %GC time 9.1% (9.5% elapsed) Alloc rate 321,404,646 bytes per MUT second Productivity 86.4% of total user, 90.5% of total elapsed