OCaml Batteries Included documentation.
OCaml Batteries included (or simply "Batteries") is a community-driven effort to standardize on an consistent, documented, and comprehensive development platform for the OCaml programming language.
For the moment, Batteries Included concentrates on:
Modules listed below can also be referenced as
<short name> is the module name without the initial "Bat"--or as
<short name> alone, if
Batteries has been
opened. For example,
BatLazyList can also be used as
Batteries.LazyList, or as
LazyList after executing
Efficient bit sets.
The data structure for a manual cache with keys
Functional double-ended queues
A mutable, imperative, circular, doubly linked list library
Enumeration over abstract collection of elements.
This module implements a generic finger tree datastructure as described here: Finger Trees: A Simple General-purpose Data Structure http://www.soi.city.ac.uk/~ross/papers/FingerTree.pdf
Mutable global variable.
Hash consing of data structures
Functional heaps over ordered types
DIET Maps from integers, packed using ranges
DIET : Discrete Interval Encoding Trees
Lazy lists of elements.
Reference on lists.
Sequence of elements
Maps over ordered types based on splay trees.
Heavyweight strings ("ropes")
Unifiable references using destructive union-find
UTF-8 encoded Unicode strings.
Extensible vectors with constant-time append/prepend.
Parsing character strings.
Common signatures for data structures.
High-order abstract I/O.
A common interface for numbers.
Modules for GNU
A simple parser combinator library.
Monadic results of computations that can raise exceptions
Operations on booleans
Operations on characters.
Operations on floating-point numbers.
Operations on integers.
Functions for the option type.
Operations on references.
These modules have base library equivalents. When using
BatFoo will replace
Foo, so that the new functions are easily available without a
Bat prefix on the module name. As well,
BatPervasives is opened into the global namespace. Finally, the previous versions of replaced modules are available in the
Legacy module, i.e.
Additional and modified functions for big arrays.
Operations on arbitrary-precision integers.
Extensible string buffers.
Additional and modified functions for complex numbers.
MD5 message digest.
Memory management control and statistics; finalised values.
A generic lexical analyzer.
Extra functions over hashtables.
Simple lexing using ocaml conventions
Additional and modified functions for lists.
Association tables over ordered types.
Marshaling of data structures.
Operation on arbitrary-precision numbers.
Facilities for printing exceptions.
First-in first-out queues.
Pseudo-random number generators (PRNG).
Formatted input functions.
Sets over ordered types.
Last-in first-out stacks.
Streams and stream parsers
Low-level interface to the operating system (both Unix and Windows).
These modules are available only when compiling with threads. To use
open BatteriesThread at the top of your code.
Definition of concurrency primitives.
Locks for mutual exclusion.
These modules are available only inside
interface is not guaranteed stable, and may be changed at any time,
including with backwards incompatible changes between point releases.
They are included for testing and stabilization until they can be
finalized and moved to batteries proper.
Internals of ISet and IMap, usable as generic tree library
Core of the BatIO module.
Weak hash table library for OCaml, with an interface compatible with the standard Hashtbl module.