[Haskell-beginners] Laziness, automatic memoization and arrays