Using the combinators that we built in Parsing library it can be rewritten in 5 lines as:
import Parsing
[comma,quote,newline] = ",\"\n"
csv = zeroOrMore line
line = chain cell (char comma) <-< char newline
cell = char quote >-> zeroOrMore (sat (/= quote)) <-< char quote
+++ zeroOrMore (sat (`notElem` [comma,newline]))