title: Parsec - 'many' and error messages
body: <p>When I try to parse  <code>many p</code>, I don't receive the 'expecting p' message:</p>
  
  <pre><code>&gt; parse (many (char '.') &gt;&gt; eof) "" "a"
  Left (line 1, column 1):
  unexpected 'a'
  expecting end of input
  </code></pre>
  
  <p>Compare to</p>
  
  <pre><code>&gt; parse (sepBy (char '.') (char ',') &gt;&gt; eof) "" "a"
  Left (line 1, column 1):
  unexpected 'a'
  expecting "." or end of input
  </code></pre>
  
  <p>which reports "." as I'd expect. <code>many1 p &lt;|&gt; return []</code> works as well.</p>
  
  <p><strong>All of these functions accept empty input</strong>, so why doesn't <code>many</code> report what it's expecting? Is it a bug or a feature?</p>