satisfy :: ( c -> Bool ) -> Parser c c
satisfy p = do 
    x <- next 
    if p x then return x else reject
expect :: Eq c => c -> Parser c c
expect c = satisfy ( == c )
ziffer :: Parser Char Integer
ziffer = do 
    c <- satisfy Data.Char.isDigit
    return $ fromIntegral 
           $ fromEnum c - fromEnum '0'