-- the grammer doesn't seem to allow lists that end in commas, but
-- such lists appear in the examples.

list = (trimSpaces $ (node <|> group) `sepEndBy1` comma >>= return . concat) <?> "list"
list = (trimSpaces $ (node <|> group) `sepEndBy1` comma >>= return . concat) <?> "list"
list = (trimSpaces $ (node <|> group) `sepEndBy1` comma >>= return . concat) <?> "list"