[Haskell-beginners] backtracking search and memory usage