title: What are Alternative's "some" and "many" useful for?
body: <p><a href="http://hackage.haskell.org/packages/archive/base/latest/doc/html/Control-Applicative.html#t:Alternative" rel="noreferrer"><code>Alternative</code></a>, an extension of <code>Applicative</code>, declares <code>empty</code>, <code>&lt;|&gt;</code> and these two functions:</p>
  
  <blockquote>
    <p>One or more:</p>
  
  <pre><code>some :: f a -&gt; f [a]
  </code></pre>
    
    <p>Zero or more:</p>
  
  <pre><code>many :: f a -&gt; f [a]
  </code></pre>
    
    <p>If defined, <code>some</code> and <code>many</code> should be the least solutions of the equations:</p>
  
  <pre><code>some v = (:) &lt;$&gt; v &lt;*&gt; many v
  
  many v = some v &lt;|&gt; pure []
  </code></pre>
  </blockquote>
  
  <p>I couldn't find an instance for which <code>some</code> and <code>many</code> are defined. <strong>What is their meaning and practical use?</strong> Are they used at all? I've been unable to grasp their purpose just from this definition.</p>
  
  <p><strong>Update:</strong> I'm not asking what is <code>Alternative</code>, just what are <code>some</code> and <code>many</code></p>