how to parse a string of comma-separated values into a list of strings in haskell?
<p>so if I have a string "(this, is, a, story, all, about, how)" into a list of the words inside it ["this", "is", "a", "story", "all", "about", "how"] as an instance of ReadP String? I've tried a bunch of different ways, one of which being this: </p>

<pre><code>parseStr :: ReadP String
parseStr = do
  skipSpaces
  n &lt;- munch1 isAlphaOrDigit
  skipComma
  return $ n
</code></pre>

<p>which parses all values but the last. I thought if I combined it with this parse: </p>

<pre><code>parseLast :: ReadP String
parseLast = do
  skipSpaces
  n &lt;- munch1 isAlphaOrDigit
  return $ n
</code></pre>

<p>as </p>

<pre><code>parseLet = (many parseStr) +++ parseLast
</code></pre>

<p>but that didn't work either. Any tips? </p>

<p>edit: more definitions</p>

<pre><code>isAlphaOrDigit :: Char -&gt; Bool 
isAlphaOrDigit a = (isDigit a) || (isAlpha a) 
comma = satisfy (','==)
skipComma = const () &lt;$&gt; some comma
</code></pre>