The first extension provided by Camlp4 is streams and parsers. A stream is a value of the abstract type 'a Stream.t. It is like a list but where only the first element is available: to read the second element you have to remove the first one from the stream. A parser is a function of type 'a Stream.t -> 'b which makes a kind of pattern matching inside a stream. A first way to create a stream is to