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 tag
  type label
  type table
  type meth
  type t
  type obj
  type closure
  val public_method_label : string -> CamlinternalOO.tag
  val new_method : CamlinternalOO.table -> CamlinternalOO.label
  val new_variable : CamlinternalOO.table -> string -> int
  val new_methods_variables :
    CamlinternalOO.table ->
    string array -> string array -> CamlinternalOO.label array
  val get_variable : CamlinternalOO.table -> string -> int
  val get_variables : CamlinternalOO.table -> string array -> int array
  val get_method_label :
    CamlinternalOO.table -> string -> CamlinternalOO.label
  val get_method_labels :
    CamlinternalOO.table -> string array -> CamlinternalOO.label array
  val get_method :
    CamlinternalOO.table -> CamlinternalOO.label -> CamlinternalOO.meth
  val set_method :
    CamlinternalOO.table ->
    CamlinternalOO.label -> CamlinternalOO.meth -> unit
  val set_methods :
    CamlinternalOO.table -> CamlinternalOO.label array -> unit
  val narrow :
    CamlinternalOO.table ->
    string array -> string array -> string array -> unit
  val widen : CamlinternalOO.table -> unit
  val add_initializer :
    CamlinternalOO.table -> (CamlinternalOO.obj -> unit) -> unit
  val dummy_table : CamlinternalOO.table
  val create_table : string array -> CamlinternalOO.table
  val init_class : CamlinternalOO.table -> unit
  val inherits :
    CamlinternalOO.table ->
    string array ->
    string array ->
    string array ->
    CamlinternalOO.t *
    (CamlinternalOO.table -> CamlinternalOO.obj -> Obj.t) *
    CamlinternalOO.t * CamlinternalOO.obj -> bool -> Obj.t array
  val make_class :
    string array ->
    (CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) ->
    CamlinternalOO.t * (CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) *
    (Obj.t -> CamlinternalOO.t) * Obj.t
  type init_table
  val make_class_store :
    string array ->
    (CamlinternalOO.table -> CamlinternalOO.t) ->
    CamlinternalOO.init_table -> unit
  val dummy_class :
    string * int * int ->
    CamlinternalOO.t * (CamlinternalOO.table -> Obj.t -> CamlinternalOO.t) *
    (Obj.t -> CamlinternalOO.t) * Obj.t
  val copy : (< .. > as 'a) -> 'a
  val create_object : CamlinternalOO.table -> CamlinternalOO.obj
  val create_object_opt :
    CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
  val run_initializers : CamlinternalOO.obj -> CamlinternalOO.table -> unit
  val run_initializers_opt :
    CamlinternalOO.obj ->
    CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
  val create_object_and_run_initializers :
    CamlinternalOO.obj -> CamlinternalOO.table -> CamlinternalOO.obj
  external send :
    CamlinternalOO.obj -> CamlinternalOO.tag -> CamlinternalOO.t = "%send"
  external sendcache :
    CamlinternalOO.obj ->
    CamlinternalOO.tag -> CamlinternalOO.t -> int -> CamlinternalOO.t
    = "%sendcache"
  external sendself :
    CamlinternalOO.obj -> CamlinternalOO.label -> CamlinternalOO.t
    = "%sendself"
  external get_public_method :
    CamlinternalOO.obj -> CamlinternalOO.tag -> CamlinternalOO.closure
    = "caml_get_public_method" "noalloc"
  type tables
  val lookup_tables :
    CamlinternalOO.tables ->
    CamlinternalOO.closure array -> CamlinternalOO.tables
  type impl =
      GetConst
    | GetVar
    | GetEnv
    | GetMeth
    | SetVar
    | AppConst
    | AppVar
    | AppEnv
    | AppMeth
    | AppConstConst
    | AppConstVar
    | AppConstEnv
    | AppConstMeth
    | AppVarConst
    | AppEnvConst
    | AppMethConst
    | MethAppConst
    | MethAppVar
    | MethAppEnv
    | MethAppMeth
    | SendConst
    | SendVar
    | SendEnv
    | SendMeth
    | Closure of CamlinternalOO.closure
  type params = {
    mutable compact_table : bool;
    mutable copy_parent : bool;
    mutable clean_when_copying : bool;
    mutable retry_count : int;
    mutable bucket_small_size : int;
  }
  val params : CamlinternalOO.params
  type stats = { classes : int; methods : int; inst_vars : int; }
  val stats : unit -> CamlinternalOO.stats
end