Stdlib.Stream(3) OCaml library Stdlib.Stream(3)

# [NAME](#NAME)

Stdlib.Stream - no description

# [Module](#Module)

Module Stdlib.Stream

# [Documentation](#Documentation)

Module **Stream**  
: **(module Stdlib\_\_Stream)**

*type* **'a** *t*

The type of streams holding values of type **'a** .

*exception Failure*

Raised by parsers when none of the first components of the stream patterns is accepted.

*exception Error* **of** **string**

Raised by parsers when the first component of a stream pattern is accepted, but one of the following components is rejected.

## [Stream builders](#Stream_builders)

*val from* : **(int -&gt; 'a option) -&gt; 'a t**

**Stream.from f** returns a stream built from the function **f** . To create a new stream element, the function **f** is called with the current stream count. The user function **f** must return either **Some &lt;value&gt;** for a value or **None** to specify the end of the stream.

Do note that the indices passed to **f** may not start at **0** in the general case. For example, **\[&lt; '0; '1; Stream.from f &gt;]** would call **f** the first time with count **2** .

*val of\_list* : **'a list -&gt; 'a t**

Return the stream holding the elements of the list in the same order.

*val of\_string* : **string -&gt; char t**

Return the stream of the characters of the string parameter.

*val of\_bytes* : **bytes -&gt; char t**

Return the stream of the characters of the bytes parameter.

**Since** 4.02.0

*val of\_channel* : **in\_channel -&gt; char t**

Return the stream of the characters read from the input channel.

## [Stream iterator](#Stream_iterator)

*val iter* : **('a -&gt; unit) -&gt; 'a t -&gt; unit**

**Stream.iter f s** scans the whole stream s, applying function **f** in turn to each stream element encountered.

## [Predefined parsers](#Predefined_parsers)

*val next* : **'a t -&gt; 'a**

Return the first element of the stream and remove it from the stream.

**Raises Stream.Failure** if the stream is empty.

*val empty* : **'a t -&gt; unit**

Return **()** if the stream is empty, else raise **Stream.Failure** .

## [Useful functions](#Useful_functions)

*val peek* : **'a t -&gt; 'a option**

Return **Some** of "the first element" of the stream, or **None** if the stream is empty.

*val junk* : **'a t -&gt; unit**

Remove the first element of the stream, possibly unfreezing it before.

*val count* : **'a t -&gt; int**

Return the current count of the stream elements, i.e. the number of the stream elements discarded.

*val npeek* : **int -&gt; 'a t -&gt; 'a list**

**npeek n** returns the list of the **n** first elements of the stream, or all its remaining elements if less than **n** elements are available.

2026-10-27 OCamldoc

---

Document: Stdlib.Stream(3o) from ocaml-4 4.14.4-r4 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
