Factored Cognition Primer: How to write compositional language model programs | Hacker News Reader