Dynamic programming in Haskell: automatic memoization | Hacker News Reader