instance Monad ( Parser c ) where
    return x = Parser $ \ s -> 
        return ( x, s ) 
    Parser f >>= g = Parser $ \ s -> do
        ( a, t ) <- f s 
        let Parser h = g a
        h t
beachte: das return/do gehört zur List-Monade
p :: Parser c (c,c) p = do x <- next ; y <- next ; return (x,y)