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.refexternal classify_float : float ‑> fpclass = val stdin : in_channelval stdout : out_channelval stderr : out_channelval open_out : string ‑> out_channelval open_out_bin : string ‑> out_channelval open_out_gen : open_flag list ‑> int ‑> string ‑> out_channelval flush : out_channel ‑> unitval output_char : out_channel ‑> char ‑> unitval output_string : out_channel ‑> string ‑> unitval output_bytes : out_channel ‑> bytes ‑> unitval output : out_channel ‑> bytes ‑> int ‑> int ‑> unitval output_substring : out_channel ‑> string ‑> int ‑> int ‑> unitval output_byte : out_channel ‑> int ‑> unitval output_binary_int : out_channel ‑> int ‑> unitval output_value : out_channel ‑> 'a ‑> unitval seek_out : out_channel ‑> int ‑> unitval pos_out : out_channel ‑> intval out_channel_length : out_channel ‑> intval close_out : out_channel ‑> unitval close_out_noerr : out_channel ‑> unitval set_binary_mode_out : out_channel ‑> bool ‑> unitval open_in : string ‑> in_channelval open_in_bin : string ‑> in_channelval open_in_gen : open_flag list ‑> int ‑> string ‑> in_channelval input_char : in_channel ‑> charval input_line : in_channel ‑> stringval input : in_channel ‑> bytes ‑> int ‑> int ‑> intval really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unitval really_input_string : in_channel ‑> int ‑> stringval input_byte : in_channel ‑> intval input_binary_int : in_channel ‑> intval input_value : in_channel ‑> 'aval seek_in : in_channel ‑> int ‑> unitval pos_in : in_channel ‑> intval in_channel_length : in_channel ‑> intval close_in : in_channel ‑> unitval close_in_noerr : in_channel ‑> unitval set_binary_mode_in : in_channel ‑> bool ‑> unitexternal 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 ‑> stringval unsafe_really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unitmodule Applicative : sig ... endmodule Applicative_intf : sig ... endApplicatives 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 ... endmodule Binary_search : sig ... endGeneral 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 ... endModule types for a binary_search function for a sequence, and functors for building
binary_search functions.
module Blit_intf : sig ... endStandard type for blit functions, and reusable code for validating blit
arguments.
module Bool : sig ... endmodule Buffer : sig ... endmodule Commutative_group : sig ... endA signature for a commutative group (in the group-theory sense).
module Comparable : sig ... endmodule Comparable_intf : sig ... endmodule Comparator : sig ... endA type-indexed value that allows one to compare (and for generating error messages, serialize) values of the type in question.
module Container : sig ... endmodule Container_intf : sig ... endThis 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 ... endmodule Either_intf : sig ... endMany 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 ... endThis 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 ... endA lazy string, implemented with Info, but intended specifically for error
messages.
module Exn : sig ... endsexp_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 ... endmodule Hash : sig ... endmodule Hash_set : sig ... endmodule Hash_set_intf : sig ... endmodule Hasher : sig ... endSignatures required of types which can be used in [@@deriving_inline hash][@@@end].
module Hashtbl : sig ... endmodule Hashtbl_intf : sig ... endmodule Heap_block : sig ... endA 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 ... endA signature combining functionality that is commonly used for types that are intended to act as names or identifiers.
module Indexed_container : sig ... endmodule Info : sig ... endmodule Info_intf : sig ... endInfo 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 ... endmodule Int_intf : sig ... endmodule Intable : sig ... endmodule Invariant : sig ... endmodule Map : sig ... endmodule Maybe_bound : sig ... endmodule Monad : sig ... endmodule Nativeint : sig ... endmodule Option : sig ... endmodule Or_error : sig ... endType 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 ... endmodule Ordering : sig ... endOrdering 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 ... endmodule Polymorphic_compare : sig ... endmodule Polymorphic_compare_intf : sig ... endInterfaces 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 ... endThis module exposes popcount functions for the various integer types. Functions are exposed in their respective modules.
module Pretty_printer : sig ... endA list of pretty printers for various types, for use in toplevels.
module Printf : sig ... endmodule Linked_queue : sig ... endThis 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 ... endAn interface for queues that follows Base's conventions, as opposed to OCaml's
standard Queue module.
module Random : sig ... endThis 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 ... endA sequence of elements that can be produced one at a time, on demand, normally with no sharing.
module Set : sig ... endmodule Sexpable : sig ... endNew 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 ... endOne typically obtains a Source_code_position.t using a [%here] expression, which
is implemented by the ppx_here preprocessor.
module Staged : sig ... endA 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 ... endAn extension of the standard StringLabels. If you open Base, you'll get these in
the String module.
module Stringable : sig ... endmodule String_dict : sig ... endEfficient static string dictionaries. By static, we mean that new key-value pairs cannot be added after the dictionary is created.
module T : sig ... endmodule Type_equal : sig ... endFor representing type equalities otherwise not known by the type-checker.
module Validate : sig ... endA 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 ... endwith_return f allows for something like the return statement in C within f. There
are three ways f can terminate:
module Sexp : sig ... endmodule Exported_for_specific_uses : sig ... endmodule Export : sig ... endinclude Exportval array_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a arrayval sexp_of_array : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a array ‑> Base__.Sexplib.Sexp.tval bool_of_sexp : Base__.Sexplib.Sexp.t ‑> boolval sexp_of_bool : bool ‑> Base__.Sexplib.Sexp.tval hash_fold_bool : Base__.Ppx_hash_lib.Std.Hash.state ‑> bool ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_bool : bool ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval char_of_sexp : Base__.Sexplib.Sexp.t ‑> charval sexp_of_char : char ‑> Base__.Sexplib.Sexp.tval hash_fold_char : Base__.Ppx_hash_lib.Std.Hash.state ‑> char ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_char : char ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval sexp_of_exn : exn ‑> Base__.Sexplib.Sexp.tval float_of_sexp : Base__.Sexplib.Sexp.t ‑> floatval sexp_of_float : float ‑> Base__.Sexplib.Sexp.tval hash_fold_float : Base__.Ppx_hash_lib.Std.Hash.state ‑> float ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_float : float ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval int_of_sexp : Base__.Sexplib.Sexp.t ‑> intval sexp_of_int : int ‑> Base__.Sexplib.Sexp.tval hash_fold_int : Base__.Ppx_hash_lib.Std.Hash.state ‑> int ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_int : int ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval int32_of_sexp : Base__.Sexplib.Sexp.t ‑> int32val sexp_of_int32 : int32 ‑> Base__.Sexplib.Sexp.tval hash_fold_int32 : Base__.Ppx_hash_lib.Std.Hash.state ‑> int32 ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_int32 : int32 ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval int64_of_sexp : Base__.Sexplib.Sexp.t ‑> int64val sexp_of_int64 : int64 ‑> Base__.Sexplib.Sexp.tval hash_fold_int64 : Base__.Ppx_hash_lib.Std.Hash.state ‑> int64 ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_int64 : int64 ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval list_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a listval sexp_of_list : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a list ‑> Base__.Sexplib.Sexp.tval 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.stateval nativeint_of_sexp : Base__.Sexplib.Sexp.t ‑> nativeintval sexp_of_nativeint : nativeint ‑> Base__.Sexplib.Sexp.tval hash_fold_nativeint : Base__.Ppx_hash_lib.Std.Hash.state ‑> nativeint ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_nativeint : nativeint ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval option_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a optionval sexp_of_option : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a option ‑> Base__.Sexplib.Sexp.tval 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.stateval ref_of_sexp : a. (Base__.Sexplib.Sexp.t ‑> 'a) ‑> Base__.Sexplib.Sexp.t ‑> 'a refval sexp_of_ref : a. ('a ‑> Base__.Sexplib.Sexp.t) ‑> 'a ref ‑> Base__.Sexplib.Sexp.tval string_of_sexp : Base__.Sexplib.Sexp.t ‑> stringval sexp_of_string : string ‑> Base__.Sexplib.Sexp.tval hash_fold_string : Base__.Ppx_hash_lib.Std.Hash.state ‑> string ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_string : string ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueval unit_of_sexp : Base__.Sexplib.Sexp.t ‑> unitval sexp_of_unit : unit ‑> Base__.Sexplib.Sexp.tval hash_fold_unit : Base__.Ppx_hash_lib.Std.Hash.state ‑> unit ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash_unit : unit ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueList operators
include List.Infixval (@) : 'a Base__List.t ‑> 'a Base__List.t ‑> 'a Base__List.tInt operators and comparisons
include Int.OA 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 ‑> 'amodule Not_exposed_properly : sig ... end