( <|> ) :: Parser c a -> Parser c a -> Parser c a Parser f <|> Parser g = Parser $ \ s -> f s ++ g s
many, many1 :: Parser c a -> Parser c [a] many p = many1 p <|> return [] many1 p = do x <- p; xs <- many p; return $ x : xs
zahl :: Parser Char Integer = do zs <- many1 ziffer return $ foldl ( \ a z -> 10*a+z ) 0 zs