Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

Module Docstrings

module Docstrings: sig .. end
(Re)Initialise all docstring state

val init : unit -> unit
val warn_bad_docstrings : unit -> unit
Emit warnings for unattached and ambiguous docstrings

Docstrings


type docstring 
Documentation comments
val docstring : string -> Location.t -> docstring
Create a docstring
val docstring_body : docstring -> string
Get the text of a docstring
val docstring_loc : docstring -> Location.t
Get the location of a docstring

Set functions

These functions are used by the lexer to associate docstrings to the locations of tokens.

val set_pre_docstrings : Lexing.position -> docstring list -> unit
Docstrings immediately preceding a token
val set_post_docstrings : Lexing.position -> docstring list -> unit
Docstrings immediately following a token
val set_floating_docstrings : Lexing.position -> docstring list -> unit
Docstrings not immediately adjacent to a token
val set_pre_extra_docstrings : Lexing.position -> docstring list -> unit
Docstrings immediately following the token which precedes this one
val set_post_extra_docstrings : Lexing.position -> docstring list -> unit
Docstrings immediately preceding the token which follows this one

Items

The Docstrings.docs type represents documentation attached to an item.

type docs = {
   docs_pre : docstring option;
   docs_post : docstring option;
}
val empty_docs : docs
val docs_attr : docstring -> Parsetree.attribute
val add_docs_attrs : docs -> Parsetree.attributes -> Parsetree.attributes
Convert item documentation to attributes and add them to an attribute list
val symbol_docs : unit -> docs
Fetch the item documentation for the current symbol. This also marks this documentation (for ambiguity warnings).
val symbol_docs_lazy : unit -> docs Lazy.t
val rhs_docs : int -> int -> docs
Fetch the item documentation for the symbols between two positions. This also marks this documentation (for ambiguity warnings).
val rhs_docs_lazy : int -> int -> docs Lazy.t
val mark_symbol_docs : unit -> unit
Mark the item documentation for the current symbol (for ambiguity warnings).
val mark_rhs_docs : int -> int -> unit
Mark as associated the item documentation for the symbols between two positions (for ambiguity warnings)

Fields and constructors

The Docstrings.info type represents documentation attached to a field or constructor.

type info = docstring option 
val empty_info : info
val info_attr : docstring -> Parsetree.attribute
val add_info_attrs : info -> Parsetree.attributes -> Parsetree.attributes
Convert field info to attributes and add them to an attribute list
val symbol_info : unit -> info
Fetch the field info for the current symbol.
val rhs_info : int -> info
Fetch the field info following the symbol at a given position.

Unattached comments

The Docstrings.text type represents documentation which is not attached to anything.

type text = docstring list 
val empty_text : text
val text_attr : docstring -> Parsetree.attribute
val add_text_attrs : text -> Parsetree.attributes -> Parsetree.attributes
Convert text to attributes and add them to an attribute list
val symbol_text : unit -> text
Fetch the text preceding the current symbol.
val symbol_text_lazy : unit -> text Lazy.t
val rhs_text : int -> text
Fetch the text preceding the symbol at the given position.
val rhs_text_lazy : int -> text Lazy.t

Extra text

There may be additional text attached to the delimiters of a block (e.g. struct and end). This is fetched by the following functions, which are applied to the contents of the block rather than the delimiters.

val symbol_pre_extra_text : unit -> text
Fetch additional text preceding the current symbol
val symbol_post_extra_text : unit -> text
Fetch additional text following the current symbol
val rhs_pre_extra_text : int -> text
Fetch additional text preceding the symbol at the given position
val rhs_post_extra_text : int -> text
Fetch additional text following the symbol at the given position