I always thought that Haskell would do some sort of automatic intelligent memoizing. E.g., the naive Fibonacci implementation
fib 0 = 0 fib 1 = 1 fib n = fib
No exactly an answer, but this page: http://www.haskell.org/haskellwiki/Memoization offers ideas about Memoization in Haskell and also shows a list-based implementation of the Fibonacci sequence that may be of interest.