OCaml Batteries Included

Welcome to OCaml Batteries Included Beta 1.

Batteries Included is an effort to develop a comprehensive, decentralized yet unified open-source standard library for OCaml. For the moment, Batteries Included concentrates on:

Future versions will progressively add (not necessarily in that order):

For more informations on the installation of Batteries Included, please read the following guide.

Do you have suggestions? Remarks? Bug reports ? To contact us or to be kept informed, don't hesitate to visit our website.

List of modules


Standard
The initially opened module.
Legacy
Access to the modules provided by INRIA.
Exceptions
Facilities for printing exceptions.
Return
Monad
Definition of monads.
Concurrency
Definition of concurrency primitives.
Concurrency.MakeLock
Concurrency.NoLock
Condition
Condition variables to synchronize between threads.
Event
First-class synchronous communication.
Mutex
Locks for mutual exclusion.
RMutex
Locks for mutual exclusion.
Thread
Lightweight threads for Posix 1003.1c and Win32.
Threads
All the definitions of built-in concurrency primitives.
Threads.Condition
Condition variables to synchronize between threads.
Threads.Event
First-class synchronous communication.
Threads.Mutex
Locks for mutual exclusion.
Threads.RMutex
Locks for mutual exclusion.
Threads.Thread
Lightweight threads for Posix 1003.1c and Win32.
IO
High-order abstract I/O.
IO.BigEndian
Same operations as module IO, but with big-endian encoding
Net_channels
Codec
Common compression/decompression interfaces.
GZip
GZip - compression/decompression interface.
Data
Common signatures for data structures.
Array
Array operations.
Array.Cap
Capabilities for arrays.
Array.Cap.Exceptionless
Operations on Array without exceptions.
Array.Cap.Labels
Operations on Array with labels.
Array.Exceptionless
Operations on Array without exceptions.
Array.Labels
Operations on Array with labels.
Array.Labels.LExceptionless
Big_array
Large, multi-dimensional, numerical arrays.
Big_array.Genarray
Generic arrays (of arbitrarily many dimensions)
Big_array.Array1
One-dimensional arrays.
Big_array.Array2
Two-dimensional arrays.
Big_array.Array3
Three-dimensional arrays.
Dllist
A mutable, imperative, circular, doubly linked list library
Dyn_array
Dynamic arrays.
Enum
Enumeration over abstract collection of elements.
Enum.Exceptionless
Operations on Enum without exceptions.
Enum.Labels
Operations on Enum with labels.
Enum.Labels.LExceptionless
Seq
Sequence of elements
Seq.Exceptionless
Global
Mutable global variable.
Hashtbl
Operations over hashtables.
Hashtbl.Exceptionless
Operations on Hashtbl without exceptions.
Hashtbl.Labels
Operations on Hashtbl with labels.
Hashtbl.Make
Functor building an implementation of the hashtable structure.
Extlib.ExtHashtbl.Hashtbl.S.Exceptionless
Operations on Hashtbl without exceptions.
Extlib.ExtHashtbl.Hashtbl.S.Labels
Operations on Hashtbl with labels.
Hashtbl.Cap
Capabilities for hashtables.
Hashtbl.Cap.Exceptionless
Operations on Hashtbl without exceptions.
Hashtbl.Cap.Labels
Operations on Hashtbl with labels.
Hashtbl.S.Exceptionless
Operations on Hashtbl without exceptions.
Hashtbl.S.Labels
Operations on Hashtbl with labels.
Ref_list
Reference on lists.
Ref_list.Index
Functions that operate on the ith element of a list.
Queue
First-in first-out queues.
Ref
Operations on references.
Stack
Last-in first-out stacks.
Stream
Streams and parsers.
Vect
Extensible vectors with constant-time append/prepend.
Vect.Make
Lazy
Deferred computations.
Lazy_list
Lazy lists of elements.
Lazy_list.Exceptionless
Exceptionless counterparts for error-raising operations
Lazy_list.Labels
Operations on Lazy_list with labels.
Lazy_list.Labels.Exceptionless
List
List operations.
List.Exceptionless
Exceptionless counterparts for error-raising operations
List.Labels
Operations on List with labels.
List.Labels.LExceptionless
Map
Association tables over ordered types.
Map.StringMap
A map on strings.
Map.IStringMap
A map on strings.
Map.NumStringMap
A map on strings.
Map.RopeMap
A map on ropes.
Map.IRopeMap
A map on ropes.
Map.IntMap
A map on integers.
Extlib.ExtMap.Map.S.Labels
Operations on Map with labels.
Extlib.ExtMap.Map.S.Exceptionless
Operations on Map without exceptions.
Map.Make
Functor building an implementation of the map structure given a totally ordered type.
Map.S.Exceptionless
Operations on Map without exceptions.
Map.S.Labels
Operations on Map with labels.
Multi_pmap
Polymorphic Multi-Map.
Option
Functions for the option type.
Option.Labels
Operations on options, with labels.
PMap
Polymorphic Map.
PSet
Polymorphic sets of elements.
Set
Sets over ordered types.
Set.StringSet
A set of strings.
Set.IStringSet
A set of strings.
Set.NumStringSet
A set of strings.
Set.RopeSet
A set of ropes.
Set.IRopeSet
A set of ropes.
Set.IntSet
A set of integers.
Extlib.ExtSet.Set.S.Labels
Operations on Set with labels.
Extlib.ExtSet.Set.S.Exceptionless
Operations on Set without exceptions.
Set.Make
Functor building an implementation of the set structure given a totally ordered type.
Set.S.Exceptionless
Operations on Set without exceptions.
Set.S.Labels
Operations on Set with labels.
Unit
Operations on unit.
Bool
Operations on booleans
Bit_set
Efficient bit sets.
Numeric
A common interface for numbers.
Big_int
Operations on arbitrary-precision integers.
Complex
Complex numbers.
Float
Operations on floating-point numbers.
Int
Operations on integers.
Int32
32-bit integers.
Int64
64-bit integers.
Native_int
Processor-native integers.
Num
Operation on arbitrary-precision numbers.
Safe_float
Operations on floating-point numbers, with exceptions raised in case of error.
Safe_int
Safe operations on integers.
Buffer
Extensible string buffers.
Char
Operations on characters.
UTF8
UTF-8 encoded Unicode strings.
UTF8.Byte
Positions in the string represented by the number of bytes from the head.
UTF8.Buf
Buffer module for UTF-8 strings
Rope
Heavyweight strings ("ropes")
Rope.IRope
UChar
Unicode (ISO-UCS) characters.
UChar.IUChar
String
String operations.
String.IString
uses icompare as ordering function
String.NumString
uses numeric_compare as its ordering function
String.Cap
Capabilities for strings.
Str
Regular expressions and high-level string processing
Char_encodings
Packages
Finding information about installed packages and tools.
Compilers
Invoke the OCamlc compilers, documentation generator...
Callback
Registering Caml values with the C runtime.
Gc
Memory management control and statistics; finalised values.
Marshal
Marshaling of data structures.
Modules
Internals on modules.
Obj
Operations on internal representations of values.
Oo
Operations on objects
Oo.Internal
Weak
Arrays of weak pointers and hash tables of weak pointers.
Weak.Make
Functor building an implementation of the weak hash table structure.
Lexing
The run-time library for lexers generated by ocamllex.
Parsing
The run-time library for parsers generated by ocamlyacc.
Format
Pretty printing.
Printf
Formatted output functions (also known as unparsing).
Print
Formatted output functions (also known as unparsing).
Value_printer
Value printers
Scanf
Formatted input functions.
Scanf.Scanning
Scanning buffers
SExpr
Saving data to a human-readable format/reading data from a human-readable format.
Arg
Parsing of command line arguments.
File
File manipulation.
Opt_parse
Modules for GNU getopt(3)-style command line parsing.
Opt_parse.Opt
This module contains the basic functions and types for defining new option types and accessing the values of options.
Opt_parse.StdOpt
This module contains various standard options.
Opt_parse.Formatter
This module contains the types and functions for implementing custom usage message formatters.
Opt_parse.OptParser
This module contains the option parser itself.
Path
Operations on file names.
Shell
Unix
Low-level interface to the operating system (both Unix and Windows).
Unix.LargeFile
File operations on large files.
Base64
Base64 codec.
Batteries_config
This system's configuration.
MD5
MD5 message digest.
Random
Pseudo-random number generators (PRNG).
Random.State
Manipulate the current state of the random generator.
Date
Support for dates, including parsing and formating.
Future
Preview of future modules.
Future.Genlex
A generic lexical analyzer.
Future.Genlex.Languages
Future.Genlex.Languages.Library
Future.Genlex.Languages.Library.OCaml
Future.Genlex.Languages.Library.C
Future.Genlex.Languages.Make
Future.Char_parser
Parsing character strings.
Future.UChar_parser
Parsing unicode text
Future.Parser_co
A simple parser combinator library.
Future.Parser_co.Source
A source for parsing.
Future.Path
This implementation can be used with UTF-8, but encoding of used strings is not verified.
Future.PathGen
Future.PathGen.Make
Constructs path handling module for string-like type and its operations given in S.
Extlib.PathGen.PathType.Operators
Infix operators for path construction.
Extlib.PathGen.PathType.OperatorLift
Convenience operator for lifting primitive strings to ustring type.
Future.PathGen.OfString
This implementation can be used with UTF-8, but encoding of used strings is not verified.
Future.PathGen.StringType.Parse
Future.PathGen.PathType.OperatorLift
Convenience operator for lifting primitive strings to ustring type.
Future.PathGen.PathType.Operators
Infix operators for path construction.
Future.Result
Future.Logger
Logging Library