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 CamlinternalFormatBasics

module CamlinternalFormatBasics: sig .. end

type padty = 
| Left
| Right
| Zeros
type int_conv = 
| Int_d
| Int_pd
| Int_sd
| Int_i
| Int_pi
| Int_si
| Int_x
| Int_Cx
| Int_X
| Int_CX
| Int_o
| Int_Co
| Int_u
type float_conv = 
| Float_f
| Float_pf
| Float_sf
| Float_e
| Float_pe
| Float_se
| Float_E
| Float_pE
| Float_sE
| Float_g
| Float_pg
| Float_sg
| Float_G
| Float_pG
| Float_sG
| Float_F
type char_set = string;
type counter = 
| Line_counter
| Char_counter
| Token_counter
type ('a, 'b) padding = 
| No_padding : ('a0, 'a0) padding
| Lit_padding : padty * int -> ('a1, 'a1) padding
| Arg_padding : padty -> (int -> 'a2, 'a2) padding
type pad_option = option int;
type ('a, 'b) precision = 
| No_precision : ('a0, 'a0) precision
| Lit_precision : int -> ('a1, 'a1) precision
| Arg_precision : (int -> 'a2, 'a2) precision
type prec_option = option int;
type ('a, 'b, 'c) custom_arity = 
| Custom_zero : ('a0, string, 'a0) custom_arity
| Custom_succ : ('a1, 'b0, 'c0) custom_arity -> ('a1, 'x -> 'b0, 'x -> 'c0) custom_arity
type block_type = 
| Pp_hbox
| Pp_vbox
| Pp_hvbox
| Pp_hovbox
| Pp_box
| Pp_fits
type formatting_lit = 
| Close_box
| Close_tag
| Break of string * int * int
| FFlush
| Force_newline
| Flush_newline
| Magic_size of string * int
| Escaped_at
| Escaped_percent
| Scan_indic of char
type ('a, 'b, 'c, 'd, 'e, 'f) formatting_gen = 
| Open_tag : ('a0, 'b0, 'c0, 'd0, 'e0, 'f0) format6 -> ('a0, 'b0, 'c0, 'd0, 'e0, 'f0) formatting_gen
| Open_box : ('a1, 'b1, 'c1, 'd1, 'e1, 'f1) format6 -> ('a1, 'b1, 'c1, 'd1, 'e1, 'f1) formatting_gen
type fmtty 'a 'b 'c 'd 'e 'f = fmtty_rel 'a 'b 'c 'd 'e 'f 'a 'b 'c 'd 'e 'f;
type ('a1, 'b1, 'c1, 'd1, 'e1, 'f1, 'a2, 'b2, 'c2, 'd2, 'e2, 'f2) fmtty_rel = 
| Char_ty : ('a10, 'b10, 'c10, 'd10, 'e10, 'f10, 'a20, 'b20, 'c20, 'd20, 'e20, 'f20) fmtty_rel -> (char -> 'a10, 'b10, 'c10, 'd10, 'e10, 'f10, char -> 'a20, 'b20, 'c20, 'd20, 'e20, 'f20) fmtty_rel
| String_ty : ('a11, 'b11, 'c11, 'd11, 'e11, 'f11, 'a21, 'b21, 'c21, 'd21, 'e21, 'f21) fmtty_rel -> (string -> 'a11, 'b11, 'c11, 'd11, 'e11, 'f11, string -> 'a21, 'b21, 'c21, 'd21, 'e21, 'f21) fmtty_rel
| Int_ty : ('a12, 'b12, 'c12, 'd12, 'e12, 'f12, 'a22, 'b22, 'c22, 'd22, 'e22, 'f22) fmtty_rel -> (int -> 'a12, 'b12, 'c12, 'd12, 'e12, 'f12, int -> 'a22, 'b22, 'c22, 'd22, 'e22, 'f22) fmtty_rel
| Int32_ty : ('a13, 'b13, 'c13, 'd13, 'e13, 'f13, 'a23, 'b23, 'c23, 'd23, 'e23, 'f23) fmtty_rel -> (int32 -> 'a13, 'b13, 'c13, 'd13, 'e13, 'f13, int32 -> 'a23, 'b23, 'c23, 'd23, 'e23, 'f23) fmtty_rel
| Nativeint_ty : ('a14, 'b14, 'c14, 'd14, 'e14, 'f14, 'a24, 'b24, 'c24, 'd24, 'e24, 'f24) fmtty_rel -> (nativeint -> 'a14, 'b14, 'c14, 'd14, 'e14, 'f14, nativeint -> 'a24, 'b24, 'c24, 'd24, 'e24, 'f24) fmtty_rel
| Int64_ty : ('a15, 'b15, 'c15, 'd15, 'e15, 'f15, 'a25, 'b25, 'c25, 'd25, 'e25, 'f25) fmtty_rel -> (int64 -> 'a15, 'b15, 'c15, 'd15, 'e15, 'f15, int64 -> 'a25, 'b25, 'c25, 'd25, 'e25, 'f25) fmtty_rel
| Float_ty : ('a16, 'b16, 'c16, 'd16, 'e16, 'f16, 'a26, 'b26, 'c26, 'd26, 'e26, 'f26) fmtty_rel -> (float -> 'a16, 'b16, 'c16, 'd16, 'e16, 'f16, float -> 'a26, 'b26, 'c26, 'd26, 'e26, 'f26) fmtty_rel
| Bool_ty : ('a17, 'b17, 'c17, 'd17, 'e17, 'f17, 'a27, 'b27, 'c27, 'd27, 'e27, 'f27) fmtty_rel -> (bool -> 'a17, 'b17, 'c17, 'd17, 'e17, 'f17, bool -> 'a27, 'b27, 'c27, 'd27, 'e27, 'f27) fmtty_rel
| Format_arg_ty : ('g, 'h, 'i, 'j, 'k, 'l) fmtty * ('a18, 'b18, 'c18, 'd18, 'e18, 'f18, 'a28, 'b28, 'c28, 'd28, 'e28, 'f28) fmtty_rel -> (('g, 'h, 'i, 'j, 'k, 'l) format6 -> 'a18, 'b18, 'c18, 'd18, 'e18, 'f18, ('g, 'h, 'i, 'j, 'k, 'l) format6 -> 'a28, 'b28, 'c28, 'd28, 'e28, 'f28) fmtty_rel
| Format_subst_ty : ('g0, 'h0, 'i0, 'j0, 'k0, 'l0, 'g1, 'b19, 'c19, 'j1, 'd19, 'a19) fmtty_rel * ('g0, 'h0, 'i0, 'j0, 'k0, 'l0, 'g2, 'b29, 'c29, 'j2, 'd29, 'a29) fmtty_rel * ('a19, 'b19, 'c19, 'd19, 'e19, 'f19, 'a29, 'b29, 'c29, 'd29, 'e29, 'f29) fmtty_rel -> (('g0, 'h0, 'i0, 'j0, 'k0, 'l0) format6 -> 'g1, 'b19, 'c19, 'j1, 'e19, 'f19, ('g0, 'h0, 'i0, 'j0, 'k0, 'l0) format6 -> 'g2, 'b29, 'c29, 'j2, 'e29, 'f29) fmtty_rel
| Alpha_ty : ('a110, 'b110, 'c110, 'd110, 'e110, 'f110, 'a210, 'b210, 'c210, 'd210, 'e210, 'f210) fmtty_rel -> (('b110 -> 'x -> 'c110) -> 'x -> 'a110, 'b110, 'c110, 'd110, 'e110, 'f110, ('b210 -> 'x -> 'c210) -> 'x -> 'a210, 'b210, 'c210, 'd210, 'e210, 'f210) fmtty_rel
| Theta_ty : ('a111, 'b111, 'c111, 'd111, 'e111, 'f111, 'a211, 'b211, 'c211, 'd211, 'e211, 'f211) fmtty_rel -> (('b111 -> 'c111) -> 'a111, 'b111, 'c111, 'd111, 'e111, 'f111, ('b211 -> 'c211) -> 'a211, 'b211, 'c211, 'd211, 'e211, 'f211) fmtty_rel
| Any_ty : ('a112, 'b112, 'c112, 'd112, 'e112, 'f112, 'a212, 'b212, 'c212, 'd212, 'e212, 'f212) fmtty_rel -> ('x0 -> 'a112, 'b112, 'c112, 'd112, 'e112, 'f112, 'x0 -> 'a212, 'b212, 'c212, 'd212, 'e212, 'f212) fmtty_rel
| Reader_ty : ('a113, 'b113, 'c113, 'd113, 'e113, 'f113, 'a213, 'b213, 'c213, 'd213, 'e213, 'f213) fmtty_rel -> ('x1 -> 'a113, 'b113, 'c113, ('b113 -> 'x1) -> 'd113, 'e113, 'f113, 'x1 -> 'a213, 'b213, 'c213, ('b213 -> 'x1) -> 'd213, 'e213, 'f213) fmtty_rel
| Ignored_reader_ty : ('a114, 'b114, 'c114, 'd114, 'e114, 'f114, 'a214, 'b214, 'c214, 'd214, 'e214, 'f214) fmtty_rel -> ('a114, 'b114, 'c114, ('b114 -> 'x2) -> 'd114, 'e114, 'f114, 'a214, 'b214, 'c214, ('b214 -> 'x2) -> 'd214, 'e214, 'f214) fmtty_rel
| End_of_fmtty : ('f115, 'b115, 'c115, 'd115, 'd115, 'f115, 'f215, 'b215, 'c215, 'd215, 'd215, 'f215) fmtty_rel
type ('a, 'b, 'c, 'd, 'e, 'f) fmt = 
| Char : ('a0, 'b0, 'c0, 'd0, 'e0, 'f0) fmt -> (char -> 'a0, 'b0, 'c0, 'd0, 'e0, 'f0) fmt
| Caml_char : ('a1, 'b1, 'c1, 'd1, 'e1, 'f1) fmt -> (char -> 'a1, 'b1, 'c1, 'd1, 'e1, 'f1) fmt
| String : ('x, string -> 'a2) padding * ('a2, 'b2, 'c2, 'd2, 'e2, 'f2) fmt -> ('x, 'b2, 'c2, 'd2, 'e2, 'f2) fmt
| Caml_string : ('x0, string -> 'a3) padding * ('a3, 'b3, 'c3, 'd3, 'e3, 'f3) fmt -> ('x0, 'b3, 'c3, 'd3, 'e3, 'f3) fmt
| Int : int_conv * ('x1, 'y) padding * ('y, int -> 'a4) precision * ('a4, 'b4, 'c4, 'd4, 'e4, 'f4) fmt -> ('x1, 'b4, 'c4, 'd4, 'e4, 'f4) fmt
| Int32 : int_conv * ('x2, 'y0) padding * ('y0, int32 -> 'a5) precision * ('a5, 'b5, 'c5, 'd5, 'e5, 'f5) fmt -> ('x2, 'b5, 'c5, 'd5, 'e5, 'f5) fmt
| Nativeint : int_conv * ('x3, 'y1) padding * ('y1, nativeint -> 'a6) precision * ('a6, 'b6, 'c6, 'd6, 'e6, 'f6) fmt -> ('x3, 'b6, 'c6, 'd6, 'e6, 'f6) fmt
| Int64 : int_conv * ('x4, 'y2) padding * ('y2, int64 -> 'a7) precision * ('a7, 'b7, 'c7, 'd7, 'e7, 'f7) fmt -> ('x4, 'b7, 'c7, 'd7, 'e7, 'f7) fmt
| Float : float_conv * ('x5, 'y3) padding * ('y3, float -> 'a8) precision * ('a8, 'b8, 'c8, 'd8, 'e8, 'f8) fmt -> ('x5, 'b8, 'c8, 'd8, 'e8, 'f8) fmt
| Bool : ('a9, 'b9, 'c9, 'd9, 'e9, 'f9) fmt -> (bool -> 'a9, 'b9, 'c9, 'd9, 'e9, 'f9) fmt
| Flush : ('a10, 'b10, 'c10, 'd10, 'e10, 'f10) fmt -> ('a10, 'b10, 'c10, 'd10, 'e10, 'f10) fmt
| String_literal : string * ('a11, 'b11, 'c11, 'd11, 'e11, 'f11) fmt -> ('a11, 'b11, 'c11, 'd11, 'e11, 'f11) fmt
| Char_literal : char * ('a12, 'b12, 'c12, 'd12, 'e12, 'f12) fmt -> ('a12, 'b12, 'c12, 'd12, 'e12, 'f12) fmt
| Format_arg : pad_option * ('g, 'h, 'i, 'j, 'k, 'l) fmtty * ('a13, 'b13, 'c13, 'd13, 'e13, 'f13) fmt -> (('g, 'h, 'i, 'j, 'k, 'l) format6 -> 'a13, 'b13, 'c13, 'd13, 'e13, 'f13) fmt
| Format_subst : pad_option * ('g0, 'h0, 'i0, 'j0, 'k0, 'l0, 'g2, 'b14, 'c14, 'j2, 'd14, 'a14) fmtty_rel * ('a14, 'b14, 'c14, 'd14, 'e14, 'f14) fmt -> (('g0, 'h0, 'i0, 'j0, 'k0, 'l0) format6 -> 'g2, 'b14, 'c14, 'j2, 'e14, 'f14) fmt
| Alpha : ('a15, 'b15, 'c15, 'd15, 'e15, 'f15) fmt -> (('b15 -> 'x6 -> 'c15) -> 'x6 -> 'a15, 'b15, 'c15, 'd15, 'e15, 'f15) fmt
| Theta : ('a16, 'b16, 'c16, 'd16, 'e16, 'f16) fmt -> (('b16 -> 'c16) -> 'a16, 'b16, 'c16, 'd16, 'e16, 'f16) fmt
| Formatting_lit : formatting_lit * ('a17, 'b17, 'c17, 'd17, 'e17, 'f17) fmt -> ('a17, 'b17, 'c17, 'd17, 'e17, 'f17) fmt
| Formatting_gen : ('a18, 'b18, 'c18, 'd18, 'e18, 'f18) formatting_gen * ('f18, 'b18, 'c18, 'e18, 'e20, 'f20) fmt -> ('a18, 'b18, 'c18, 'd18, 'e20, 'f20) fmt
| Reader : ('a19, 'b19, 'c19, 'd19, 'e19, 'f19) fmt -> ('x7 -> 'a19, 'b19, 'c19, ('b19 -> 'x7) -> 'd19, 'e19, 'f19) fmt
| Scan_char_set : pad_option * char_set * ('a20, 'b20, 'c20, 'd20, 'e21, 'f21) fmt -> (string -> 'a20, 'b20, 'c20, 'd20, 'e21, 'f21) fmt
| Scan_get_counter : counter * ('a21, 'b21, 'c21, 'd21, 'e22, 'f22) fmt -> (int -> 'a21, 'b21, 'c21, 'd21, 'e22, 'f22) fmt
| Scan_next_char : ('a22, 'b22, 'c22, 'd22, 'e23, 'f23) fmt -> (char -> 'a22, 'b22, 'c22, 'd22, 'e23, 'f23) fmt
| Ignored_param : ('a23, 'b23, 'c23, 'd23, 'y4, 'x8) ignored * ('x8, 'b23, 'c23, 'y4, 'e24, 'f24) fmt -> ('a23, 'b23, 'c23, 'd23, 'e24, 'f24) fmt
| Custom : ('a24, 'x9, 'y5) custom_arity * (unit -> 'x9) * ('a24, 'b24, 'c24, 'd24, 'e25, 'f25) fmt -> ('y5, 'b24, 'c24, 'd24, 'e25, 'f25) fmt
| End_of_format : ('f26, 'b25, 'c25, 'e26, 'e26, 'f26) fmt
List of format elements.
type ('a, 'b, 'c, 'd, 'e, 'f) ignored = 
| Ignored_char : ('a0, 'b0, 'c0, 'd0, 'd0, 'a0) ignored
| Ignored_caml_char : ('a1, 'b1, 'c1, 'd1, 'd1, 'a1) ignored
| Ignored_string : pad_option -> ('a2, 'b2, 'c2, 'd2, 'd2, 'a2) ignored
| Ignored_caml_string : pad_option -> ('a3, 'b3, 'c3, 'd3, 'd3, 'a3) ignored
| Ignored_int : int_conv * pad_option -> ('a4, 'b4, 'c4, 'd4, 'd4, 'a4) ignored
| Ignored_int32 : int_conv * pad_option -> ('a5, 'b5, 'c5, 'd5, 'd5, 'a5) ignored
| Ignored_nativeint : int_conv * pad_option -> ('a6, 'b6, 'c6, 'd6, 'd6, 'a6) ignored
| Ignored_int64 : int_conv * pad_option -> ('a7, 'b7, 'c7, 'd7, 'd7, 'a7) ignored
| Ignored_float : pad_option * prec_option -> ('a8, 'b8, 'c8, 'd8, 'd8, 'a8) ignored
| Ignored_bool : ('a9, 'b9, 'c9, 'd9, 'd9, 'a9) ignored
| Ignored_format_arg : pad_option * ('g, 'h, 'i, 'j, 'k, 'l) fmtty -> ('a10, 'b10, 'c10, 'd10, 'd10, 'a10) ignored
| Ignored_format_subst : pad_option * ('a11, 'b11, 'c11, 'd11, 'e0, 'f0) fmtty -> ('a11, 'b11, 'c11, 'd11, 'e0, 'f0) ignored
| Ignored_reader : ('a12, 'b12, 'c12, ('b12 -> 'x) -> 'd12, 'd12, 'a12) ignored
| Ignored_scan_char_set : pad_option * char_set -> ('a13, 'b13, 'c13, 'd13, 'd13, 'a13) ignored
| Ignored_scan_get_counter : counter -> ('a14, 'b14, 'c14, 'd14, 'd14, 'a14) ignored
| Ignored_scan_next_char : ('a15, 'b15, 'c15, 'd15, 'd15, 'a15) ignored
type ('a, 'b, 'c, 'd, 'e, 'f) format6 = 
| Format of ('a, 'b, 'c, 'd, 'e, 'f) fmt * string
let concat_fmtty:
  fmtty_rel 'g1 'b1 'c1 'j1 'd1 'a1 'g2 'b2 'c2 'j2 'd2 'a2 =>
  fmtty_rel 'a1 'b1 'c1 'd1 'e1 'f1 'a2 'b2 'c2 'd2 'e2 'f2 =>
  fmtty_rel 'g1 'b1 'c1 'j1 'e1 'f1 'g2 'b2 'c2 'j2 'e2 'f2;
let erase_rel: fmtty_rel 'a 'b 'c 'd 'e 'f 'g 'h 'i 'j 'k 'l => fmtty 'a 'b 'c 'd 'e 'f;
let concat_fmt: fmt 'a 'b 'c 'd 'e 'f => fmt 'f 'b 'c 'e 'g 'h => fmt 'a 'b 'c 'd 'g 'h;