title: How to write fixed point build rules in Shake, e.g. Latex
body: <p>Using the Shake Haskell build library, how can I write a rule using a program that needs to reach a fixed point? Imagine I have a program <code>foo</code> that takes a file <code>input</code> and produces an output file, which should have <code>foo</code> applied repeatedly until the output file does not change. How can I write that in Shake?</p>
  
  <p>The typical example of this pattern is LaTeX.</p>