include module type of sig ... end with module Array := Caml.Array with module Buffer := Caml.Buffer with module Char := Caml.Char with module Hashtbl := Caml.Hashtbl with module Int32 := Caml.Int32 with module Int64 := Caml.Int64 with module Lazy := Caml.Lazy with module List := Caml.List with module Map := Caml.Map with module Nativeint := Caml.Nativeint with module Printf := Caml.Printf with module Random := Caml.Random with module Set := Caml.Set with module String := Caml.String with module Sys := Caml.Sys with module Uchar := Caml.Uchar with module Lexing := Caml.Lexing with type (a, b, c) format := (a, b, c) Pervasives.format with type (a, b, c, d) format4 := (a, b, c, d) Pervasives.format4 with type (a, b, c, d, e, f) format6 := (a, b, c, d, e, f) Pervasives.format6 with type a ref := a Pervasives.ref
external classify_float : float ‑> fpclass =
val stdin : in_channel
val stdout : out_channel
val stderr : out_channel
val open_out : string ‑> out_channel
val open_out_bin : string ‑> out_channel
val open_out_gen : open_flag list ‑> int ‑> string ‑> out_channel
val flush : out_channel ‑> unit
val output_char : out_channel ‑> char ‑> unit
val output_string : out_channel ‑> string ‑> unit
val output_bytes : out_channel ‑> bytes ‑> unit
val output : out_channel ‑> bytes ‑> int ‑> int ‑> unit
val output_substring : out_channel ‑> string ‑> int ‑> int ‑> unit
val output_byte : out_channel ‑> int ‑> unit
val output_binary_int : out_channel ‑> int ‑> unit
val output_value : out_channel ‑> 'a ‑> unit
val seek_out : out_channel ‑> int ‑> unit
val pos_out : out_channel ‑> int
val out_channel_length : out_channel ‑> int
val close_out : out_channel ‑> unit
val close_out_noerr : out_channel ‑> unit
val set_binary_mode_out : out_channel ‑> bool ‑> unit
val open_in : string ‑> in_channel
val open_in_bin : string ‑> in_channel
val open_in_gen : open_flag list ‑> int ‑> string ‑> in_channel
val input_char : in_channel ‑> char
val input_line : in_channel ‑> string
val input : in_channel ‑> bytes ‑> int ‑> int ‑> int
val really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unit
val really_input_string : in_channel ‑> int ‑> string
val input_byte : in_channel ‑> int
val input_binary_int : in_channel ‑> int
val input_value : in_channel ‑> 'a
val seek_in : in_channel ‑> int ‑> unit
val pos_in : in_channel ‑> int
val in_channel_length : in_channel ‑> int
val close_in : in_channel ‑> unit
val close_in_noerr : in_channel ‑> unit
val set_binary_mode_in : in_channel ‑> bool ‑> unit
external ref : 'a ‑> 'a ref =
external (!) : 'a ref ‑> 'a =
external (:=) : 'a ref ‑> 'a ‑> unit =
external incr : int ref ‑> unit =
external decr : int ref ‑> unit =
val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 ‑> string
val unsafe_really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unit
module Applicative : sig ... end
module Applicative_intf : sig ... end
Applicatives model computations in which values computed by subcomputations cannot affect what subsequent computations will take place. Relative to monads, this restriction takes power away from the user of the interface and gives it to the implementation. In particular, because the structure of the entire computation is known, one can augment its definition with some description of that structure.
module Array : sig ... end
module Binary_search : sig ... end
General functions for performing binary searches over ordered sequences given
length
and get
functions. These functions can be specialized and added to
a data structure using the functors supplied in Binary_searchable
and described
in Binary_searchable_intf
.
module Binary_searchable_intf : sig ... end
Module types for a binary_search
function for a sequence, and functors for building
binary_search
functions.
module Blit_intf : sig ... end
Standard type for blit
functions, and reusable code for validating blit
arguments.
module Bool : sig ... end
module Buffer : sig ... end
module Commutative_group : sig ... end
A signature for a commutative group (in the group-theory sense).
module Comparable : sig ... end
module Comparable_intf : sig ... end
module Comparator : sig ... end
A type-indexed value that allows one to compare (and for generating error messages, serialize) values of the type in question.
module Container : sig ... end
module Container_intf : sig ... end
This file has generic signatures for container data structures, with standard
functions (iter, fold, exists, for_all, ...) that one would expect to find in any
container. The idea is to include Container.S0
or Container.S1
in the signature
for every container-like data structure (Array, List, String, ...) to ensure a
consistent interface.
module Either : sig ... end
module Either_intf : sig ... end
Many functions in Either
focus on just one constructor. The Focused
signature
abstracts over which constructor is the focus. To use these functions, use the
First
or Second
modules in S
.
module Equal : sig ... end
This module defines signatures that are to be included in other signatures to ensure a
consistent interface to equal
functions. There is a signature (S
, S1
, S2
,
S3
) for each arity of type. Usage looks like:
module Error : sig ... end
A lazy string, implemented with Info
, but intended specifically for error
messages.
module Exn : sig ... end
sexp_of_t
uses a global table of sexp converters. To register a converter for a new
exception, add [@@deriving_inline sexp][@@@end]
to its definition. If no suitable converter is
found, the standard converter in Printexc
will be used to generate an atomic
S-expression.
module Floatable : sig ... end
module Hash : sig ... end
module Hash_set : sig ... end
module Hash_set_intf : sig ... end
module Hasher : sig ... end
Signatures required of types which can be used in [@@deriving_inline hash][@@@end]
.
module Hashtbl : sig ... end
module Hashtbl_intf : sig ... end
module Heap_block : sig ... end
A heap block is a value that is guaranteed to live on the OCaml heap, and is hence guaranteed to be usable with finalization or in a weak pointer. It is an abstract type so we can use the type system to guarantee that the values we put in weak pointers and use with finalizers are heap blocks.
module Identifiable : sig ... end
A signature combining functionality that is commonly used for types that are intended to act as names or identifiers.
module Indexed_container : sig ... end
module Info : sig ... end
module Info_intf : sig ... end
Info
is a library for lazily constructing human-readable information as a string or
sexp, with a primary use being error messages. Using Info
is often preferable to
sprintf
or manually constructing strings because you don't have to eagerly construct
the string --- you only need to pay when you actually want to display the info. which
for many applications is rare. Using Info
is also better than creating custom
exceptions because you have more control over the format.
module Int64 : sig ... end
module Int_intf : sig ... end
module Intable : sig ... end
module Invariant : sig ... end
module Map : sig ... end
module Maybe_bound : sig ... end
module Monad : sig ... end
module Nativeint : sig ... end
module Option : sig ... end
module Or_error : sig ... end
Type for tracking errors in an Error.t. This is a specialization of the Result type, where the Error constructor carries an Error.t.
module Ordered_collection_common : sig ... end
module Ordering : sig ... end
Ordering
is intended to make code that matches on the result of a comparison
more concise and easier to read. For example, one would write:
module Poly : sig ... end
module Polymorphic_compare : sig ... end
module Polymorphic_compare_intf : sig ... end
Interfaces used for hiding and replacing polymorphic compare. Including a module with
interface S
should hide the majority of functions that use polymorphic compare.
module Popcount : sig ... end
This module exposes popcount functions for the various integer types. Functions are exposed in their respective modules.
module Pretty_printer : sig ... end
A list of pretty printers for various types, for use in toplevels.
module Printf : sig ... end
module Linked_queue : sig ... end
This module is a wrapper around OCaml's standard Queue
module that follows Base
idioms and adds some functions. See Queue_intf
for documentation of standard queue
functions.
module Queue_intf : sig ... end
An interface for queues that follows Base's conventions, as opposed to OCaml's
standard Queue
module.
module Random : sig ... end
This is a slightly modified version of the OCaml standard library's random.mli. We
want Base's Random
module to be different from OCaml's standard one:
module Sequence : sig ... end
A sequence of elements that can be produced one at a time, on demand, normally with no sharing.
module Set : sig ... end
module Sexpable : sig ... end
New code should use the @@deriving_inline sexp
@@@end
syntax directly. These module types
(S, S1, S2, and S3) are exported for backwards compatibility only. *
module Source_code_position : sig ... end
One typically obtains a Source_code_position.t
using a [%here]
expression, which
is implemented by the ppx_here
preprocessor.
module Staged : sig ... end
A type for making staging explicit in the type of a function. For example, you might want to have a function that creates a function for allocating unique identifiers. Rather than using the type:
module String : sig ... end
An extension of the standard StringLabels. If you open Base
, you'll get these in
the String module.
module Stringable : sig ... end
module String_dict : sig ... end
Efficient static string dictionaries. By static, we mean that new key-value pairs cannot be added after the dictionary is created.
module T : sig ... end
module Type_equal : sig ... end
For representing type equalities otherwise not known by the type-checker.
module Validate : sig ... end
A module for organizing validations of data structures. Allows standardized ways of checking for conditions, and keeps track of the location of errors by keeping a path to each error found. Thus, if you were validating the following datastructure:
module With_return : sig ... end
with_return f
allows for something like the return statement in C within f
. There
are three ways f
can terminate:
module Sexp : sig ... end
module Exported_for_specific_uses : sig ... end
module Export : sig ... end
include Export
val array_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a array
val sexp_of_array : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a array ‑> Base__.Sexplib.Sexp.t
val bool_of_sexp : Base__.Sexplib.Sexp.t ‑> bool
val sexp_of_bool : bool ‑> Base__.Sexplib.Sexp.t
val hash_fold_bool : Base__.Ppx_hash_lib.Std.Hash.state ‑> bool ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_bool : bool ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val char_of_sexp : Base__.Sexplib.Sexp.t ‑> char
val sexp_of_char : char ‑> Base__.Sexplib.Sexp.t
val hash_fold_char : Base__.Ppx_hash_lib.Std.Hash.state ‑> char ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_char : char ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val sexp_of_exn : exn ‑> Base__.Sexplib.Sexp.t
val float_of_sexp : Base__.Sexplib.Sexp.t ‑> float
val sexp_of_float : float ‑> Base__.Sexplib.Sexp.t
val hash_fold_float : Base__.Ppx_hash_lib.Std.Hash.state ‑> float ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_float : float ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val int_of_sexp : Base__.Sexplib.Sexp.t ‑> int
val sexp_of_int : int ‑> Base__.Sexplib.Sexp.t
val hash_fold_int : Base__.Ppx_hash_lib.Std.Hash.state ‑> int ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_int : int ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val int32_of_sexp : Base__.Sexplib.Sexp.t ‑> int32
val sexp_of_int32 : int32 ‑> Base__.Sexplib.Sexp.t
val hash_fold_int32 : Base__.Ppx_hash_lib.Std.Hash.state ‑> int32 ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_int32 : int32 ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val int64_of_sexp : Base__.Sexplib.Sexp.t ‑> int64
val sexp_of_int64 : int64 ‑> Base__.Sexplib.Sexp.t
val hash_fold_int64 : Base__.Ppx_hash_lib.Std.Hash.state ‑> int64 ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_int64 : int64 ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val list_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a list
val sexp_of_list : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a list ‑> Base__.Sexplib.Sexp.t
val hash_fold_list : a. (Base__.Ppx_hash_lib.Std.Hash.state ‑> 'a ‑> Base__.Ppx_hash_lib.Std.Hash.state) ‑> Base__.Ppx_hash_lib.Std.Hash.state ‑> 'a list ‑> Base__.Ppx_hash_lib.Std.Hash.state
val nativeint_of_sexp : Base__.Sexplib.Sexp.t ‑> nativeint
val sexp_of_nativeint : nativeint ‑> Base__.Sexplib.Sexp.t
val hash_fold_nativeint : Base__.Ppx_hash_lib.Std.Hash.state ‑> nativeint ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_nativeint : nativeint ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val option_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a option
val sexp_of_option : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a option ‑> Base__.Sexplib.Sexp.t
val hash_fold_option : a. (Base__.Ppx_hash_lib.Std.Hash.state ‑> 'a ‑> Base__.Ppx_hash_lib.Std.Hash.state) ‑> Base__.Ppx_hash_lib.Std.Hash.state ‑> 'a option ‑> Base__.Ppx_hash_lib.Std.Hash.state
val ref_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a ref
val sexp_of_ref : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a ref ‑> Base__.Sexplib.Sexp.t
val string_of_sexp : Base__.Sexplib.Sexp.t ‑> string
val sexp_of_string : string ‑> Base__.Sexplib.Sexp.t
val hash_fold_string : Base__.Ppx_hash_lib.Std.Hash.state ‑> string ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_string : string ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
val unit_of_sexp : Base__.Sexplib.Sexp.t ‑> unit
val sexp_of_unit : unit ‑> Base__.Sexplib.Sexp.t
val hash_fold_unit : Base__.Ppx_hash_lib.Std.Hash.state ‑> unit ‑> Base__.Ppx_hash_lib.Std.Hash.state
val hash_unit : unit ‑> Base__.Ppx_hash_lib.Std.Hash.hash_value
List operators
include List.Infix
val (@) : 'a Base__List.t ‑> 'a Base__List.t ‑> 'a Base__List.t
Int operators and comparisons
include Int.O
A sub-module designed to be opened to make working with ints more convenient.
external ignore : _ ‑> unit = "%ignore"
external ref : 'a ‑> 'a ref = "%makemutable"
val raise_s : Sexp.t ‑> 'a
module Not_exposed_properly : sig ... end