many' :: Parser' a -> Parser' [a]
many' p =
  do s <- liftP' S.get ; if B.null s then return [] else (:) <$> p <*> many' p


-- TODO: extend ParseError to append multiple errors ?
many' :: Parser' a -> Parser' [a]
many' p =
  do s <- liftP' S.get ; if B.null s then return [] else (:) <$> p <*> many' p


-- TODO: extend ParseError to append multiple errors ?
many' p =
  do s <- liftP' S.get ; if B.null s then return [] else (:) <$> p <*> many' p


-- TODO: extend ParseError to append multiple errors ?