CRANE: Reasoning with Constrained LLM Generation | Hacker News Reader