title: In Parsec, how do I run second parser, only if the first parser consumed some input?
body: <p>I need a combinator like <code>p1 &lt;&lt; p2</code>, but <code>p2</code> should run <strong>only</strong> if <code>p1</code> has succeeded and <strong>consumed some input</strong>.</p>
  
  <p>If <code>p1</code> succeeded without consuming input, <code>p2</code> should not run.</p>
  
  <p>If <code>p1</code> failed, then <code>p2</code> is also ignored?</p>
  
  <p>Overall result is <code>r1</code>'s result</p>