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