Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

Module Stream

module Stream: sig .. end
Streams and parsers.

type t 'a;
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 string;
Raised by parsers when the first component of a stream pattern is accepted, but one of the following components is rejected.

Stream builders

let from: (int => option 'a) => t 'a;
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 <value> 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, [< '0; '1; Stream.from f >] would call f the first time with count 2.

let of_list: list 'a => t 'a;
Return the stream holding the elements of the list in the same order.
let of_string: string => t char;
Return the stream of the characters of the string parameter.
let of_bytes: bytes => t char;
Return the stream of the characters of the bytes parameter.
Since 4.02.0
let of_channel: Pervasives.in_channel => t char;
Return the stream of the characters read from the input channel.

Stream iterator

let iter: ('a => unit) => t 'a => unit;
Stream.iter f s scans the whole stream s, applying function f in turn to each stream element encountered.

Predefined parsers

let next: t 'a => 'a;
Return the first element of the stream and remove it from the stream. Raise Stream.Failure if the stream is empty.
let empty: t 'a => unit;
Return () if the stream is empty, else raise Stream.Failure.

Useful functions

let peek: t 'a => option 'a;
Return Some of "the first element" of the stream, or None if the stream is empty.
let junk: t 'a => unit;
Remove the first element of the stream, possibly unfreezing it before.
let count: t 'a => int;
Return the current count of the stream elements, i.e. the number of the stream elements discarded.
let npeek: int => t 'a => list 'a;
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.