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