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 ('a, 'b) t
  val create : ?random:bool -> int -> ('a, 'b) Hashtbl.t
  val clear : ('a, 'b) Hashtbl.t -> unit
  val reset : ('a, 'b) Hashtbl.t -> unit
  val copy : ('a, 'b) Hashtbl.t -> ('a, 'b) Hashtbl.t
  val add : ('a, 'b) Hashtbl.t -> 'a -> 'b -> unit
  val find : ('a, 'b) Hashtbl.t -> 'a -> 'b
  val find_all : ('a, 'b) Hashtbl.t -> 'a -> 'b list
  val mem : ('a, 'b) Hashtbl.t -> 'a -> bool
  val remove : ('a, 'b) Hashtbl.t -> 'a -> unit
  val replace : ('a, 'b) Hashtbl.t -> 'a -> 'b -> unit
  val iter : ('a -> 'b -> unit) -> ('a, 'b) Hashtbl.t -> unit
  val fold : ('a -> 'b -> 'c -> 'c) -> ('a, 'b) Hashtbl.t -> 'c -> 'c
  val length : ('a, 'b) Hashtbl.t -> int
  val randomize : unit -> unit
  type statistics = {
    num_bindings : int;
    num_buckets : int;
    max_bucket_length : int;
    bucket_histogram : int array;
  }
  val stats : ('a, 'b) Hashtbl.t -> Hashtbl.statistics
  module type HashedType =
    sig
      type t
      val equal : Hashtbl.HashedType.t -> Hashtbl.HashedType.t -> bool
      val hash : Hashtbl.HashedType.t -> int
    end
  module type S =
    sig
      type key
      type 'a t
      val create : int -> 'a Hashtbl.S.t
      val clear : 'a Hashtbl.S.t -> unit
      val reset : 'a Hashtbl.S.t -> unit
      val copy : 'a Hashtbl.S.t -> 'a Hashtbl.S.t
      val add : 'a Hashtbl.S.t -> Hashtbl.S.key -> 'a -> unit
      val remove : 'a Hashtbl.S.t -> Hashtbl.S.key -> unit
      val find : 'a Hashtbl.S.t -> Hashtbl.S.key -> 'a
      val find_all : 'a Hashtbl.S.t -> Hashtbl.S.key -> 'a list
      val replace : 'a Hashtbl.S.t -> Hashtbl.S.key -> 'a -> unit
      val mem : 'a Hashtbl.S.t -> Hashtbl.S.key -> bool
      val iter : (Hashtbl.S.key -> 'a -> unit) -> 'a Hashtbl.S.t -> unit
      val fold :
        (Hashtbl.S.key -> 'a -> 'b -> 'b) -> 'a Hashtbl.S.t -> 'b -> 'b
      val length : 'a Hashtbl.S.t -> int
      val stats : 'a Hashtbl.S.t -> Hashtbl.statistics
    end
  module Make :
    functor (H : HashedType) ->
      sig
        type key = H.t
        type 'a t
        val create : int -> 'a t
        val clear : 'a t -> unit
        val reset : 'a t -> unit
        val copy : 'a t -> 'a t
        val add : 'a t -> key -> 'a -> unit
        val remove : 'a t -> key -> unit
        val find : 'a t -> key -> 'a
        val find_all : 'a t -> key -> 'a list
        val replace : 'a t -> key -> 'a -> unit
        val mem : 'a t -> key -> bool
        val iter : (key -> 'a -> unit) -> 'a t -> unit
        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
        val length : 'a t -> int
        val stats : 'a t -> statistics
      end
  module type SeededHashedType =
    sig
      type t
      val equal :
        Hashtbl.SeededHashedType.t -> Hashtbl.SeededHashedType.t -> bool
      val hash : int -> Hashtbl.SeededHashedType.t -> int
    end
  module type SeededS =
    sig
      type key
      type 'a t
      val create : ?random:bool -> int -> 'a Hashtbl.SeededS.t
      val clear : 'a Hashtbl.SeededS.t -> unit
      val reset : 'a Hashtbl.SeededS.t -> unit
      val copy : 'a Hashtbl.SeededS.t -> 'a Hashtbl.SeededS.t
      val add : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> 'a -> unit
      val remove : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> unit
      val find : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> 'a
      val find_all : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> 'a list
      val replace : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> 'a -> unit
      val mem : 'a Hashtbl.SeededS.t -> Hashtbl.SeededS.key -> bool
      val iter :
        (Hashtbl.SeededS.key -> 'a -> unit) -> 'a Hashtbl.SeededS.t -> unit
      val fold :
        (Hashtbl.SeededS.key -> 'a -> 'b -> 'b) ->
        'a Hashtbl.SeededS.t -> 'b -> 'b
      val length : 'a Hashtbl.SeededS.t -> int
      val stats : 'a Hashtbl.SeededS.t -> Hashtbl.statistics
    end
  module MakeSeeded :
    functor (H : SeededHashedType) ->
      sig
        type key = H.t
        type 'a t
        val create : ?random:bool -> int -> 'a t
        val clear : 'a t -> unit
        val reset : 'a t -> unit
        val copy : 'a t -> 'a t
        val add : 'a t -> key -> 'a -> unit
        val remove : 'a t -> key -> unit
        val find : 'a t -> key -> 'a
        val find_all : 'a t -> key -> 'a list
        val replace : 'a t -> key -> 'a -> unit
        val mem : 'a t -> key -> bool
        val iter : (key -> 'a -> unit) -> 'a t -> unit
        val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
        val length : 'a t -> int
        val stats : 'a t -> statistics
      end
  val hash : 'a -> int
  val seeded_hash : int -> 'a -> int
  val hash_param : int -> int -> 'a -> int
  val seeded_hash_param : int -> int -> int -> 'a -> int
end