Understanding why foldr works on infinite list on Haskell | Hacker News Reader