@@ -58,6 +58,10 @@ listTerm = (do { try $ string "[markdown|"
58parensTerm = parens $ choice
58parensTerm = parens $ choice
59 [ do op <- anyOp
59 [ do op <- anyOp
60 return . Lambda "x" . Lambda "y" $ Binop op (Var "x") (Var "y")
60 return . Lambda "x" . Lambda "y" $ Binop op (Var "x") (Var "y")
61+ , do let comma = char ',' <?> "comma ','"
62+ commas <- comma >> many (whitespace >> comma)
63+ let vars = map (('v':) . show) [ 0 .. length commas + 1 ]
64+ return $ foldr Lambda (tuple $ map Var vars) (vars)
61 , do es <- commaSep expr
65 , do es <- commaSep expr
62 return $ case es of { [e] -> e; _ -> tuple es }
66 return $ case es of { [e] -> e; _ -> tuple es }