base
-
library base
-
module Base
-
module Applicative
-
module type Applicative_infix
-
module type Applicative_infix2
-
module type Applicative_infix3
-
module type Basic
-
module type Basic2
-
module type Basic2_using_map2
-
module type Basic3
-
module type Basic3_using_map2
-
module type Basic_using_map2
-
module Compose
-
argument 1-F
-
module Applicative_infix
-
-
argument 2-G
-
module Applicative_infix
-
-
module Applicative_infix
-
-
module type Let_syntax
-
module Let_syntax
-
module Let_syntax
-
-
module Open_on_rhs_intf
-
-
module type Let_syntax2
-
module Let_syntax
-
module Let_syntax
-
-
module Open_on_rhs_intf
-
-
module type Let_syntax3
-
module Let_syntax
-
module Let_syntax
-
-
module Open_on_rhs_intf
-
-
module Make
-
argument 1-X
-
module Applicative_infix
-
-
module Make2
-
argument 1-X
-
module Applicative_infix
-
-
module Make2_using_map2
-
argument 1-X
-
module Applicative_infix
-
-
module Make3
-
argument 1-X
-
module Applicative_infix
-
-
module Make3_using_map2
-
argument 1-X
-
module Applicative_infix
-
-
module Make_let_syntax
-
argument 1-X
-
argument 2-Intf
-
module Let_syntax
-
module Let_syntax
-
-
-
module Make_let_syntax2
-
argument 1-X
-
argument 2-Intf
-
module Let_syntax
-
module Let_syntax
-
-
-
module Make_let_syntax3
-
argument 1-X
-
argument 2-Intf
-
module Let_syntax
-
module Let_syntax
-
-
-
module Make_using_map2
-
argument 1-X
-
module Applicative_infix
-
-
module Of_monad
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Applicative_infix
-
-
module Of_monad2
-
argument 1-M
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Applicative_infix
-
-
module Pair
-
argument 1-F
-
module Applicative_infix
-
-
argument 2-G
-
module Applicative_infix
-
-
module Applicative_infix
-
-
module type S
-
module Applicative_infix
-
-
module type S2
-
module Applicative_infix
-
-
module S2_to_S
-
argument 1-X
-
module Applicative_infix
-
-
module Applicative_infix
-
-
module S2_to_S3
-
argument 1-X
-
module Applicative_infix
-
-
module Applicative_infix
-
-
module type S3
-
module Applicative_infix
-
-
module S3_to_S2
-
argument 1-X
-
module Applicative_infix
-
-
module Applicative_infix
-
-
module S_to_S2
-
argument 1-X
-
module Applicative_infix
-
-
module Applicative_infix
-
-
-
module Array
-
module Avltree
-
module Binary_search
-
module Binary_searchable
-
module type Indexable
-
module type Indexable1
-
module type S
-
module type S1
-
-
module Blit
-
module Make
-
argument 1-Sequence
-
-
module Make1
-
argument 1-Sequence
-
-
module Make1_generic
-
argument 1-Sequence
-
-
module Make_distinct
-
module Make_to_string
-
argument 1-T
-
argument 2-To_bytes
-
-
module type S
-
module type S1
-
module type S1_distinct
-
module type S_distinct
-
module type S_to_string
-
module type Sequence
-
module type Sequence1
-
-
module Bool
-
module Non_short_circuiting
-
-
module Bytes
-
module From_string
-
module To_string
-
-
module Comparable
-
module Make_using_comparator
-
argument 1-T
-
-
module Polymorphic_compare
-
argument 1-T
-
-
module type S
-
module Validate_with_zero
-
argument 1-T
-
-
module Comparisons
-
module Container
-
module Continue_or_stop
-
module type Generic
-
module type Generic_phantom
-
module type S0
-
module type S0_phantom
-
module type S1
-
module type S1_phantom
-
module type S1_phantom_invariant
-
module type Summable
-
-
module Continue_or_stop
-
module Either
-
module First
-
module Applicative_infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type Focused
-
module Applicative_infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Second
-
module Applicative_infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
-
module Error
-
module Internal_repr
-
-
module Exn
-
module Export
-
module Field
-
module Fn
-
module Formatter
-
module Hashtbl
-
module type Accessors
-
module type For_deriving
-
module type M_of_sexp
-
module Merge_into_action
-
module type Multi
-
module Poly
-
module type S_poly
-
module type S_without_submodules
-
module type Sexp_of_m
-
-
module Identifiable
-
module Make_using_comparator
-
argument 1-M
-
-
module type S
-
module Indexed_container
-
module type S1
-
module Info
-
module Internal_repr
-
module type S
-
module Internal_repr
-
-
-
module Int
-
module Hex
-
module type Int_without_module_types
-
module O
-
module type Operators
-
module type Operators_unbounded
-
module type Round
-
module type S_unbounded
-
-
module Int63
-
module Hex
-
module O
-
module Overflow_exn
-
-
module Lazy
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module T_unforcing
-
-
module Linked_queue
-
module List
-
module Assoc
-
module Infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Or_unequal_lengths
-
-
module Map
-
module type Accessors1
-
module type Accessors2
-
module type Accessors3
-
module type Accessors3_with_comparator
-
module type Accessors_generic
-
module type Compare_m
-
module Continue_or_stop
-
module type Creators1
-
module type Creators2
-
module type Creators3_with_comparator
-
module type Creators_and_accessors1
-
module type Creators_and_accessors2
-
module type Creators_and_accessors3_with_comparator
-
module type Creators_and_accessors_generic
-
module type Creators_generic
-
module type Equal_m
-
module Finished_or_unfinished
-
module type For_deriving
-
module type M_of_sexp
-
module Or_duplicate
-
module Poly
-
module type S_poly
-
module type Sexp_of_m
-
module Symmetric_diff_element
-
module Using_comparator
-
module Empty_without_value_restriction
-
argument 1-K
-
-
module Tree
-
-
module With_comparator
-
module With_first_class_module
-
module Without_comparator
-
-
module Maybe_bound
-
module Monad
-
module type Basic
-
module type Basic2
-
module type Basic3
-
module type Basic_indexed
-
module Ident
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type Infix
-
module type Infix2
-
module type Infix3
-
module type Infix_indexed
-
module Make
-
argument 1-X
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Make2
-
argument 1-X
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Make3
-
argument 1-X
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Make_indexed
-
argument 1-X
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S2
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S3
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S_indexed
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module type S_without_syntax
-
module Monad_infix
-
-
module type Syntax
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
-
module type Syntax2
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
-
module type Syntax3
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
-
module type Syntax_indexed
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
-
-
module Nothing
-
module Option
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Option_array
-
module Or_error
-
module Applicative_infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Ordered_collection_common
-
module Private
-
-
module Poly
-
module Popcount
-
module Pretty_printer
-
module Register_pp
-
argument 1-M
-
-
module type S
-
module Printf
-
module Result
-
module Export
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Sequence
-
module Expert
-
module Generator
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
-
module Infix
-
module Let_syntax
-
module Let_syntax
-
module Open_on_rhs
-
-
-
module Monad_infix
-
module Step
-
-
module Set
-
module type Accessors0
-
module Named
-
-
module type Accessors1
-
module Named
-
-
module type Accessors2
-
module Named
-
-
module type Accessors2_with_comparator
-
module Named
-
-
module type Accessors_generic
-
module Named
-
-
module type Compare_m
-
module type Creators0
-
module type Creators1
-
module type Creators2
-
module type Creators2_with_comparator
-
module type Creators_and_accessors0
-
module Named
-
-
module type Creators_and_accessors1
-
module Named
-
-
module type Creators_and_accessors2
-
module Named
-
-
module type Creators_and_accessors2_with_comparator
-
module Named
-
-
module type Creators_generic
-
module type Elt_plain
-
module type Equal_m
-
module type For_deriving
-
module type M_of_sexp
-
module Merge_to_sequence_element
-
module Named
-
module type Sexp_of_m
-
module Using_comparator
-
module Empty_without_value_restriction
-
argument 1-Elt
-
-
module Named
-
-
module With_comparator
-
module With_first_class_module
-
module Without_comparator
-
-
module Sexp
-
module Private
-
module Raw_grammar
-
-
-
module Sexpable
-
module Of_sexpable
-
argument 1-Sexpable
-
argument 2-M
-
-
module Of_sexpable1
-
argument 1-Sexpable
-
argument 2-M
-
-
module Of_sexpable2
-
argument 1-Sexpable
-
argument 2-M
-
-
module Of_sexpable3
-
argument 1-Sexpable
-
argument 2-M
-
-
module Of_stringable
-
argument 1-M
-
-
module type S
-
module type S1
-
module type S2
-
module type S3
-
-
module Sign
-
module Sign_or_nan
-
module Source_code_position
-
module Staged
-
module String
-
module Caseless
-
module Escaping
-
module Search_pattern
-
-
module Stringable
-
module type S
-
-
module Sys
-
module type T1
-
module type T2
-
module type T3
-
module Type_equal
-
module type Injective
-
module type Injective2
-
module Uchar
-
module Uniform_array
-
module Unit
-
module Variant
-
module With_return
-
module Word_size
-
-
-
library base.base_internalhash_types
-
module Base_internalhash_types
-
-
library base.caml
-
module Caml
-
-
library base.md5
-
module Md5_lib
-
-
library base.shadow_stdlib
-
module Shadow_stdlib
-
module Applicative : sig ... end
module Array : sig ... end
Mutable vector of elements with O(1) get
and set
operations.
module Avltree : sig ... end
A low-level, mutable AVL tree.
module Backtrace : sig ... end
Module for managing stack backtraces.
module Binary_search : sig ... end
Functions for performing binary searches over ordered sequences given length
and get
functions.
module Binary_searchable : sig ... end
module Blit : sig ... end
module Bool : sig ... end
Boolean type extended to be enumerable, hashable, sexpable, comparable, and stringable.
module Buffer : sig ... end
Extensible character buffers.
module Bytes : sig ... end
OCaml's byte sequence type, semantically similar to a char array
, but taking less space in memory.
module Char : sig ... end
A type for 8-bit characters.
module Comparable : sig ... end
Defines functors for making modules comparable.
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 Comparisons : sig ... end
Interfaces for infix comparison operators and comparison functions.
module Container : sig ... end
module Either : sig ... end
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
Exceptions.
module Field : sig ... end
OCaml record field.
module Float : sig ... end
Floating-point representation and utilities.
module Floatable : sig ... end
Module type with float conversion functions.
module Fn : sig ... end
Various combinators for functions.
module Formatter : sig ... end
The Format.formatter
type from OCaml's standard library, exported here for convenience and compatibility with other libraries.
module Hash : sig ... end
module Hash_set : sig ... end
module Hashable : sig ... end
module Hasher : sig ... end
Signatures required of types which can be used in [@@deriving hash]
.
module Hashtbl : sig ... end
A hash table is a mutable data structure implementing a map between keys and values. It supports constant-time lookup and in-place modification.
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
Provides generic signatures for containers that support indexed iteration (iteri
, foldi
, ...). In principle, any container that has iter
can also implement iteri
, but the idea is that Indexed_container_intf
should be included only for containers that have a meaningful underlying ordering.
module Info : sig ... end
module Int : sig ... end
module Int_conversions : sig ... end
Conversions between various integer types
module Int32 : sig ... end
An int of exactly 32 bits, regardless of the machine.
module Int63 : sig ... end
63-bit integers.
module Int64 : sig ... end
64-bit integers.
module Intable : sig ... end
Functor that adds integer conversion functions to a module.
module Int_math : sig ... end
This module implements derived integer operations (e.g., modulo, rounding to multiples) based on other basic operations.
module Invariant : sig ... end
This module defines signatures that are to be included in other signatures to ensure a consistent interface to invariant-style functions. There is a signature (S
, S1
, S2
, S3
) for each arity of type. Usage looks like:
module Lazy : sig ... end
A value of type 'a Lazy.t
is a deferred computation, called a suspension, that has a result of type 'a
.
module List : sig ... end
Immutable, singly-linked lists, giving fast access to the front of the list, and slow (i.e., O(n)) access to the back of the list. The comparison functions on lists are lexicographic.
module Map : sig ... end
Map
is a functional data structure (balanced binary tree) implementing finite maps over a totally-ordered domain, called a "key".
module Maybe_bound : sig ... end
Used for specifying a bound (either upper or lower) as inclusive, exclusive, or unbounded.
module Monad : sig ... end
A monad is an abstraction of the concept of sequencing of computations. A value of type 'a monad
represents a computation that returns a value of type 'a
.
module Nativeint : sig ... end
Processor-native integers.
module Nothing : sig ... end
An uninhabited type. This is useful when interfaces require that a type be specified, but the implementer knows this type will not be used in their implementation of the interface.
module Option : sig ... end
Option type.
module Option_array : sig ... end
'a Option_array.t
is a compact representation of 'a option array
: it avoids allocating heap objects representing Some x
, usually representing them with x
instead. It uses a special representation for None
that's guaranteed to never collide with any representation of Some x
.
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
Functions for ordered collections.
module Ordering : sig ... end
Ordering
is intended to make code that matches on the result of a comparison more concise and easier to read.
module Poly : sig ... end
A module containing the ad-hoc polymorphic comparison functions. Useful when you want to use polymorphic compare in some small scope of a file within which polymorphic compare has been hidden
module Polymorphic_compare = Poly
module Popcount : sig ... end
This module exposes popcount functions (which count the number of ones in a bitstring) for the various integer types.
module Pretty_printer : sig ... end
A list of pretty printers for various types, for use in toplevels.
module Printf : sig ... end
Functions for formatted output.
module Linked_queue : sig ... end
This module is a Base-style wrapper around OCaml's standard Queue
module.
module Queue : sig ... end
A queue implemented with an array.
module Random : sig ... end
Pseudo-random number generation.
module Ref : sig ... end
Module for the type ref
, mutable indirection cells r
containing a value of type 'a
, accessed with !r
and set by r := a
.
module Result : sig ... end
Result
is often used to handle error messages.
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
This module defines the Set
module for Base
. Functions that construct a set take as an argument the comparator for the element type.
module Sexpable : sig ... end
Provides functors for making modules sexpable. New code should use the [@@deriving
sexp]
syntax directly. These module types (S
, S1
, S2
, and S3
) are exported for backwards compatibility only.
module Sign : sig ... end
A type for representing the sign of a numeric value.
module Sign_or_nan : sig ... end
An extension to Sign
with a Nan
constructor, for representing the sign of float-like numeric values.
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 Stack : sig ... end
module Staged : sig ... end
A type for making staging explicit in the type of a function.
module String : sig ... end
An extension of the standard StringLabels
. If you open Base
, you'll get these extensions in the String
module.
module Stringable : sig ... end
Provides type-specific conversion functions to and from string
.
module Sys : sig ... end
Cross-platform system configuration values.
module T : sig ... end
This module defines various abstract interfaces that are convenient when one needs a module that matches a bare signature with just a type. This sometimes occurs in functor arguments and in interfaces.
module Type_equal : sig ... end
The purpose of Type_equal
is to represent type equalities that the type checker otherwise would not know, perhaps because the type equality depends on dynamic data, or perhaps because the type system isn't powerful enough.
module Uniform_array : sig ... end
Same semantics as 'a Array.t
, except it's guaranteed that the representation array is not tagged with Double_array_tag
, the tag for float arrays.
module Unit : sig ... end
Module for the type unit
.
module Uchar : sig ... end
Unicode character operations.
module Validate : sig ... end
A module for organizing validations of data structures.
module Variant : sig ... end
First-class representative of an individual variant in a variant type, used in [@@deriving variants]
.
module With_return : sig ... end
with_return f
allows for something like the return statement in C within f
.
module Word_size : sig ... end
For determining the word size that the program is using.
module Sexp : sig ... end
module Export : sig ... end
include module type of struct include Export end
include module type of struct include Sexp.Private.Raw_grammar.Builtin end
val lazy_t_sexp_grammar : Sexp.Private.Raw_grammar.t
type 'a array = 'a Array.t
val array_sexp_grammar : Sexp.Private.Raw_grammar.t
type bool = Bool.t
val hash_fold_bool : Hash.state -> bool -> Hash.state
val hash_bool : bool -> Hash.hash_value
val bool_sexp_grammar : Sexp.Private.Raw_grammar.t
type char = Char.t
val hash_fold_char : Hash.state -> char -> Hash.state
val hash_char : char -> Hash.hash_value
val char_sexp_grammar : Sexp.Private.Raw_grammar.t
type exn = Exn.t
type float = Float.t
val hash_fold_float : Hash.state -> float -> Hash.state
val hash_float : float -> Hash.hash_value
val float_sexp_grammar : Sexp.Private.Raw_grammar.t
type int = Int.t
val hash_fold_int : Hash.state -> int -> Hash.state
val hash_int : int -> Hash.hash_value
val int_sexp_grammar : Sexp.Private.Raw_grammar.t
type int32 = Int32.t
val hash_fold_int32 : Hash.state -> int32 -> Hash.state
val hash_int32 : int32 -> Hash.hash_value
val int32_sexp_grammar : Sexp.Private.Raw_grammar.t
type int64 = Int64.t
val hash_fold_int64 : Hash.state -> int64 -> Hash.state
val hash_int64 : int64 -> Hash.hash_value
val int64_sexp_grammar : Sexp.Private.Raw_grammar.t
type 'a list = 'a List.t
val hash_fold_list :
'a. ( Hash.state -> 'a -> Hash.state ) ->
Hash.state ->
'a list ->
Hash.state
val list_sexp_grammar : Sexp.Private.Raw_grammar.t
type nativeint = Nativeint.t
val hash_fold_nativeint : Hash.state -> nativeint -> Hash.state
val hash_nativeint : nativeint -> Hash.hash_value
val nativeint_sexp_grammar : Sexp.Private.Raw_grammar.t
type 'a option = 'a Option.t
val hash_fold_option :
'a. ( Hash.state -> 'a -> Hash.state ) ->
Hash.state ->
'a option ->
Hash.state
val option_sexp_grammar : Sexp.Private.Raw_grammar.t
type 'a ref = 'a Ref.t
val ref_sexp_grammar : Sexp.Private.Raw_grammar.t
type string = String.t
val hash_fold_string : Hash.state -> string -> Hash.state
val hash_string : string -> Hash.hash_value
val string_sexp_grammar : Sexp.Private.Raw_grammar.t
type bytes = Bytes.t
val bytes_sexp_grammar : Sexp.Private.Raw_grammar.t
type unit = Unit.t
val hash_fold_unit : Hash.state -> unit -> Hash.state
val hash_unit : unit -> Hash.hash_value
val unit_sexp_grammar : Sexp.Private.Raw_grammar.t
Format stuff
Sexp
Exporting the ad-hoc types that are recognized by ppx_sexp_*
converters. sexp_array
, sexp_list
, and sexp_option
allow a record field to be absent when converting from a sexp, and if absent, the field will take a default value of the appropriate type:
sexp_array [||] sexp_bool false sexp_list [] sexp_option None
sexp_opaque
causes the conversion to sexp to produce the atom <opaque>
.
For more documentation, see sexplib/README.md.
type 'a sexp_array = 'a array
type 'a sexp_list = 'a list
type 'a sexp_option = 'a option
List operators
include module type of struct include List.Infix end
Int operators and comparisons
Float operators
include module type of struct include Float.O_dot end
Similar to O
, except that operators are suffixed with a dot, allowing one to have both int and float operators in scope simultaneously.
Reverse application operator. x |> g |> f
is equivalent to f (g (x))
.
Boolean operations
val ignore : _ -> unit
Reference operations
val (!) : 'a ref -> 'a
val ref : 'a -> 'a ref
Pair operations
Exceptions stuff
val raise : exn -> _
val raise_s : Sexp.t -> 'a
Misc
val force : 'a Lazy.t -> 'a
module Continue_or_stop : sig ... end
Continue_or_stop.t
is used by the f
argument to fold_until
in order to indicate whether folding should continue, or stop early.
exception Not_found_s of Sexplib0.Sexp.t