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.

sig

  type attribute = string Asttypes.loc * Parsetree.payload
  and extension = string Asttypes.loc * Parsetree.payload
  and attributes = Parsetree.attribute list
  and payload =
      PStr of Parsetree.structure
    | PTyp of Parsetree.core_type
    | PPat of Parsetree.pattern * Parsetree.expression option
  and core_type = {
    ptyp_desc : Parsetree.core_type_desc;
    ptyp_loc : Location.t;
    ptyp_attributes : Parsetree.attributes;
  }
  and core_type_desc =
      Ptyp_any
    | Ptyp_var of string
    | Ptyp_arrow of Asttypes.label * Parsetree.core_type *
        Parsetree.core_type
    | Ptyp_tuple of Parsetree.core_type list
    | Ptyp_constr of Longident.t Asttypes.loc * Parsetree.core_type list
    | Ptyp_object of
        (string * Parsetree.attributes * Parsetree.core_type) list *
        Asttypes.closed_flag
    | Ptyp_class of Longident.t Asttypes.loc * Parsetree.core_type list
    | Ptyp_alias of Parsetree.core_type * string
    | Ptyp_variant of Parsetree.row_field list * Asttypes.closed_flag *
        Asttypes.label list option
    | Ptyp_poly of string list * Parsetree.core_type
    | Ptyp_package of Parsetree.package_type
    | Ptyp_extension of Parsetree.extension
  and package_type =
      Longident.t Asttypes.loc *
      (Longident.t Asttypes.loc * Parsetree.core_type) list
  and row_field =
      Rtag of Asttypes.label * Parsetree.attributes * bool *
        Parsetree.core_type list
    | Rinherit of Parsetree.core_type
  and pattern = {
    ppat_desc : Parsetree.pattern_desc;
    ppat_loc : Location.t;
    ppat_attributes : Parsetree.attributes;
  }
  and pattern_desc =
      Ppat_any
    | Ppat_var of string Asttypes.loc
    | Ppat_alias of Parsetree.pattern * string Asttypes.loc
    | Ppat_constant of Asttypes.constant
    | Ppat_interval of Asttypes.constant * Asttypes.constant
    | Ppat_tuple of Parsetree.pattern list
    | Ppat_construct of Longident.t Asttypes.loc * Parsetree.pattern option
    | Ppat_variant of Asttypes.label * Parsetree.pattern option
    | Ppat_record of (Longident.t Asttypes.loc * Parsetree.pattern) list *
        Asttypes.closed_flag
    | Ppat_array of Parsetree.pattern list
    | Ppat_or of Parsetree.pattern * Parsetree.pattern
    | Ppat_constraint of Parsetree.pattern * Parsetree.core_type
    | Ppat_type of Longident.t Asttypes.loc
    | Ppat_lazy of Parsetree.pattern
    | Ppat_unpack of string Asttypes.loc
    | Ppat_exception of Parsetree.pattern
    | Ppat_extension of Parsetree.extension
  and expression = {
    pexp_desc : Parsetree.expression_desc;
    pexp_loc : Location.t;
    pexp_attributes : Parsetree.attributes;
  }
  and expression_desc =
      Pexp_ident of Longident.t Asttypes.loc
    | Pexp_constant of Asttypes.constant
    | Pexp_let of Asttypes.rec_flag * Parsetree.value_binding list *
        Parsetree.expression
    | Pexp_function of Parsetree.case list
    | Pexp_fun of Asttypes.label * Parsetree.expression option *
        Parsetree.pattern * Parsetree.expression
    | Pexp_apply of Parsetree.expression *
        (Asttypes.label * Parsetree.expression) list
    | Pexp_match of Parsetree.expression * Parsetree.case list
    | Pexp_try of Parsetree.expression * Parsetree.case list
    | Pexp_tuple of Parsetree.expression list
    | Pexp_construct of Longident.t Asttypes.loc *
        Parsetree.expression option
    | Pexp_variant of Asttypes.label * Parsetree.expression option
    | Pexp_record of (Longident.t Asttypes.loc * Parsetree.expression) list *
        Parsetree.expression option
    | Pexp_field of Parsetree.expression * Longident.t Asttypes.loc
    | Pexp_setfield of Parsetree.expression * Longident.t Asttypes.loc *
        Parsetree.expression
    | Pexp_array of Parsetree.expression list
    | Pexp_ifthenelse of Parsetree.expression * Parsetree.expression *
        Parsetree.expression option
    | Pexp_sequence of Parsetree.expression * Parsetree.expression
    | Pexp_while of Parsetree.expression * Parsetree.expression
    | Pexp_for of Parsetree.pattern * Parsetree.expression *
        Parsetree.expression * Asttypes.direction_flag * Parsetree.expression
    | Pexp_constraint of Parsetree.expression * Parsetree.core_type
    | Pexp_coerce of Parsetree.expression * Parsetree.core_type option *
        Parsetree.core_type
    | Pexp_send of Parsetree.expression * string
    | Pexp_new of Longident.t Asttypes.loc
    | Pexp_setinstvar of string Asttypes.loc * Parsetree.expression
    | Pexp_override of (string Asttypes.loc * Parsetree.expression) list
    | Pexp_letmodule of string Asttypes.loc * Parsetree.module_expr *
        Parsetree.expression
    | Pexp_assert of Parsetree.expression
    | Pexp_lazy of Parsetree.expression
    | Pexp_poly of Parsetree.expression * Parsetree.core_type option
    | Pexp_object of Parsetree.class_structure
    | Pexp_newtype of string * Parsetree.expression
    | Pexp_pack of Parsetree.module_expr
    | Pexp_open of Asttypes.override_flag * Longident.t Asttypes.loc *
        Parsetree.expression
    | Pexp_extension of Parsetree.extension
  and case = {
    pc_lhs : Parsetree.pattern;
    pc_guard : Parsetree.expression option;
    pc_rhs : Parsetree.expression;
  }
  and value_description = {
    pval_name : string Asttypes.loc;
    pval_type : Parsetree.core_type;
    pval_prim : string list;
    pval_attributes : Parsetree.attributes;
    pval_loc : Location.t;
  }
  and type_declaration = {
    ptype_name : string Asttypes.loc;
    ptype_params : (Parsetree.core_type * Asttypes.variance) list;
    ptype_cstrs :
      (Parsetree.core_type * Parsetree.core_type * Location.t) list;
    ptype_kind : Parsetree.type_kind;
    ptype_private : Asttypes.private_flag;
    ptype_manifest : Parsetree.core_type option;
    ptype_attributes : Parsetree.attributes;
    ptype_loc : Location.t;
  }
  and type_kind =
      Ptype_abstract
    | Ptype_variant of Parsetree.constructor_declaration list
    | Ptype_record of Parsetree.label_declaration list
    | Ptype_open
  and label_declaration = {
    pld_name : string Asttypes.loc;
    pld_mutable : Asttypes.mutable_flag;
    pld_type : Parsetree.core_type;
    pld_loc : Location.t;
    pld_attributes : Parsetree.attributes;
  }
  and constructor_declaration = {
    pcd_name : string Asttypes.loc;
    pcd_args : Parsetree.core_type list;
    pcd_res : Parsetree.core_type option;
    pcd_loc : Location.t;
    pcd_attributes : Parsetree.attributes;
  }
  and type_extension = {
    ptyext_path : Longident.t Asttypes.loc;
    ptyext_params : (Parsetree.core_type * Asttypes.variance) list;
    ptyext_constructors : Parsetree.extension_constructor list;
    ptyext_private : Asttypes.private_flag;
    ptyext_attributes : Parsetree.attributes;
  }
  and extension_constructor = {
    pext_name : string Asttypes.loc;
    pext_kind : Parsetree.extension_constructor_kind;
    pext_loc : Location.t;
    pext_attributes : Parsetree.attributes;
  }
  and extension_constructor_kind =
      Pext_decl of Parsetree.core_type list * Parsetree.core_type option
    | Pext_rebind of Longident.t Asttypes.loc
  and class_type = {
    pcty_desc : Parsetree.class_type_desc;
    pcty_loc : Location.t;
    pcty_attributes : Parsetree.attributes;
  }
  and class_type_desc =
      Pcty_constr of Longident.t Asttypes.loc * Parsetree.core_type list
    | Pcty_signature of Parsetree.class_signature
    | Pcty_arrow of Asttypes.label * Parsetree.core_type *
        Parsetree.class_type
    | Pcty_extension of Parsetree.extension
  and class_signature = {
    pcsig_self : Parsetree.core_type;
    pcsig_fields : Parsetree.class_type_field list;
  }
  and class_type_field = {
    pctf_desc : Parsetree.class_type_field_desc;
    pctf_loc : Location.t;
    pctf_attributes : Parsetree.attributes;
  }
  and class_type_field_desc =
      Pctf_inherit of Parsetree.class_type
    | Pctf_val of
        (string * Asttypes.mutable_flag * Asttypes.virtual_flag *
         Parsetree.core_type)
    | Pctf_method of
        (string * Asttypes.private_flag * Asttypes.virtual_flag *
         Parsetree.core_type)
    | Pctf_constraint of (Parsetree.core_type * Parsetree.core_type)
    | Pctf_attribute of Parsetree.attribute
    | Pctf_extension of Parsetree.extension
  and 'a class_infos = {
    pci_virt : Asttypes.virtual_flag;
    pci_params : (Parsetree.core_type * Asttypes.variance) list;
    pci_name : string Asttypes.loc;
    pci_expr : 'a;
    pci_loc : Location.t;
    pci_attributes : Parsetree.attributes;
  }
  and class_description = Parsetree.class_type Parsetree.class_infos
  and class_type_declaration = Parsetree.class_type Parsetree.class_infos
  and class_expr = {
    pcl_desc : Parsetree.class_expr_desc;
    pcl_loc : Location.t;
    pcl_attributes : Parsetree.attributes;
  }
  and class_expr_desc =
      Pcl_constr of Longident.t Asttypes.loc * Parsetree.core_type list
    | Pcl_structure of Parsetree.class_structure
    | Pcl_fun of Asttypes.label * Parsetree.expression option *
        Parsetree.pattern * Parsetree.class_expr
    | Pcl_apply of Parsetree.class_expr *
        (Asttypes.label * Parsetree.expression) list
    | Pcl_let of Asttypes.rec_flag * Parsetree.value_binding list *
        Parsetree.class_expr
    | Pcl_constraint of Parsetree.class_expr * Parsetree.class_type
    | Pcl_extension of Parsetree.extension
  and class_structure = {
    pcstr_self : Parsetree.pattern;
    pcstr_fields : Parsetree.class_field list;
  }
  and class_field = {
    pcf_desc : Parsetree.class_field_desc;
    pcf_loc : Location.t;
    pcf_attributes : Parsetree.attributes;
  }
  and class_field_desc =
      Pcf_inherit of Asttypes.override_flag * Parsetree.class_expr *
        string option
    | Pcf_val of
        (string Asttypes.loc * Asttypes.mutable_flag *
         Parsetree.class_field_kind)
    | Pcf_method of
        (string Asttypes.loc * Asttypes.private_flag *
         Parsetree.class_field_kind)
    | Pcf_constraint of (Parsetree.core_type * Parsetree.core_type)
    | Pcf_initializer of Parsetree.expression
    | Pcf_attribute of Parsetree.attribute
    | Pcf_extension of Parsetree.extension
  and class_field_kind =
      Cfk_virtual of Parsetree.core_type
    | Cfk_concrete of Asttypes.override_flag * Parsetree.expression
  and class_declaration = Parsetree.class_expr Parsetree.class_infos
  and module_type = {
    pmty_desc : Parsetree.module_type_desc;
    pmty_loc : Location.t;
    pmty_attributes : Parsetree.attributes;
  }
  and module_type_desc =
      Pmty_ident of Longident.t Asttypes.loc
    | Pmty_signature of Parsetree.signature
    | Pmty_functor of string Asttypes.loc * Parsetree.module_type option *
        Parsetree.module_type
    | Pmty_with of Parsetree.module_type * Parsetree.with_constraint list
    | Pmty_typeof of Parsetree.module_expr
    | Pmty_extension of Parsetree.extension
    | Pmty_alias of Longident.t Asttypes.loc
  and signature = Parsetree.signature_item list
  and signature_item = {
    psig_desc : Parsetree.signature_item_desc;
    psig_loc : Location.t;
  }
  and signature_item_desc =
      Psig_value of Parsetree.value_description
    | Psig_type of Parsetree.type_declaration list
    | Psig_typext of Parsetree.type_extension
    | Psig_exception of Parsetree.extension_constructor
    | Psig_module of Parsetree.module_declaration
    | Psig_recmodule of Parsetree.module_declaration list
    | Psig_modtype of Parsetree.module_type_declaration
    | Psig_open of Parsetree.open_description
    | Psig_include of Parsetree.include_description
    | Psig_class of Parsetree.class_description list
    | Psig_class_type of Parsetree.class_type_declaration list
    | Psig_attribute of Parsetree.attribute
    | Psig_extension of Parsetree.extension * Parsetree.attributes
  and module_declaration = {
    pmd_name : string Asttypes.loc;
    pmd_type : Parsetree.module_type;
    pmd_attributes : Parsetree.attributes;
    pmd_loc : Location.t;
  }
  and module_type_declaration = {
    pmtd_name : string Asttypes.loc;
    pmtd_type : Parsetree.module_type option;
    pmtd_attributes : Parsetree.attributes;
    pmtd_loc : Location.t;
  }
  and open_description = {
    popen_lid : Longident.t Asttypes.loc;
    popen_override : Asttypes.override_flag;
    popen_loc : Location.t;
    popen_attributes : Parsetree.attributes;
  }
  and 'a include_infos = {
    pincl_mod : 'a;
    pincl_loc : Location.t;
    pincl_attributes : Parsetree.attributes;
  }
  and include_description = Parsetree.module_type Parsetree.include_infos
  and include_declaration = Parsetree.module_expr Parsetree.include_infos
  and with_constraint =
      Pwith_type of Longident.t Asttypes.loc * Parsetree.type_declaration
    | Pwith_module of Longident.t Asttypes.loc * Longident.t Asttypes.loc
    | Pwith_typesubst of Parsetree.type_declaration
    | Pwith_modsubst of string Asttypes.loc * Longident.t Asttypes.loc
  and module_expr = {
    pmod_desc : Parsetree.module_expr_desc;
    pmod_loc : Location.t;
    pmod_attributes : Parsetree.attributes;
  }
  and module_expr_desc =
      Pmod_ident of Longident.t Asttypes.loc
    | Pmod_structure of Parsetree.structure
    | Pmod_functor of string Asttypes.loc * Parsetree.module_type option *
        Parsetree.module_expr
    | Pmod_apply of Parsetree.module_expr * Parsetree.module_expr
    | Pmod_constraint of Parsetree.module_expr * Parsetree.module_type
    | Pmod_unpack of Parsetree.expression
    | Pmod_extension of Parsetree.extension
  and structure = Parsetree.structure_item list
  and structure_item = {
    pstr_desc : Parsetree.structure_item_desc;
    pstr_loc : Location.t;
  }
  and structure_item_desc =
      Pstr_eval of Parsetree.expression * Parsetree.attributes
    | Pstr_value of Asttypes.rec_flag * Parsetree.value_binding list
    | Pstr_primitive of Parsetree.value_description
    | Pstr_type of Parsetree.type_declaration list
    | Pstr_typext of Parsetree.type_extension
    | Pstr_exception of Parsetree.extension_constructor
    | Pstr_module of Parsetree.module_binding
    | Pstr_recmodule of Parsetree.module_binding list
    | Pstr_modtype of Parsetree.module_type_declaration
    | Pstr_open of Parsetree.open_description
    | Pstr_class of Parsetree.class_declaration list
    | Pstr_class_type of Parsetree.class_type_declaration list
    | Pstr_include of Parsetree.include_declaration
    | Pstr_attribute of Parsetree.attribute
    | Pstr_extension of Parsetree.extension * Parsetree.attributes
  and value_binding = {
    pvb_pat : Parsetree.pattern;
    pvb_expr : Parsetree.expression;
    pvb_attributes : Parsetree.attributes;
    pvb_loc : Location.t;
  }
  and module_binding = {
    pmb_name : string Asttypes.loc;
    pmb_expr : Parsetree.module_expr;
    pmb_attributes : Parsetree.attributes;
    pmb_loc : Location.t;
  }
  type toplevel_phrase =
      Ptop_def of Parsetree.structure
    | Ptop_dir of string * Parsetree.directive_argument
  and directive_argument =
      Pdir_none
    | Pdir_string of string
    | Pdir_int of int
    | Pdir_ident of Longident.t
    | Pdir_bool of bool
end