How to Parsing function in haskell?该怎么解决

How to Parsing function in haskell?It need to parse function in Lisp format. For example...(+ 3 4)

How to Parsing function in haskell?
It need to parse function in Lisp format. For example...
(+ 3 4) or (* 3 4 2)
I got a something like below, but it only can parse experession like (3 + 4)
, any advice to improve this? Thanks...

mulop =  do{ symbol "*"; return (SExp "*")}
     <|> do{ symbol "/"; return (SExp "/")}

addop =  do{ symbol "+"; return (SExp "+")}
     <|> do{ symbol "-"; return (SExp "-")}

anInt = do d <- digits
           ws
           return $ IntExp (read d)
anSym = oneOf ['-','*','+','/',':',''','?','>','<','=']
anVar = do first <- letter <|> anSym
           rest <- many (letter <|> adigit <|> anSym)
           ws
           return (SymExp (first:rest))

anAtom =  anInt
      <|> anVar
      <|> parens anAtom

anExp = parens expr
     <|> anAtom

expr = term `chainl1` term
term = factor `chainl1` factor
factor =  parens expr
      <|> anAtom

[解决办法]
blind to read