Ok, I fixed my test program, and now things seem more reasonable. The original version was allowing the GC to collect the list in the first case, but not the second. However, I don't want the list to be collected. The new version seems to fix that issue. Now the control uses 40MB and when I change it to list' it uses 64MB. Which is more reasonable.
main :: IO () main = let list = [1..1000000] :: [Int] bin = encode list list' = decode bin :: [Int] in do putStrLn (show . length $ takeWhile (< 10000000) list) getLine putStrLn (show . length $ takeWhile (< 10000001) list) _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe