package melange

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This module seprate identity from data, it is a bit more verboe but slightly more efficient due to the fact that there is no need to pack identity and data back after each operation

Advanced usage only

module N : sig ... end
module A : sig ... end

Belt.Array Utililites for Array functions

type ('key, 'a, 'id) t = ('key, 'a) N.t
type ('key, 'id) cmp = ('key -> 'key -> int) Js.Fn.arity2
val empty : 'a option
val fromArray : ('a * 'b) array -> cmp:('a, 'c) N.cmp -> ('a, 'b) N.t
val isEmpty : ('a, 'b) N.t -> bool
val cmp : ('a, 'b) N.t -> ('a, 'c) N.t -> kcmp:('a, 'd) N.cmp -> vcmp:('b -> 'c -> int) -> int
val cmpU : ('a, 'b) N.t -> ('a, 'c) N.t -> kcmp:('a, 'd) N.cmp -> vcmp:('b -> 'c -> int) Js.Fn.arity2 -> int
val eq : ('a, 'b) N.t -> ('a, 'c) N.t -> kcmp:('a, 'd) N.cmp -> veq:('b -> 'c -> bool) -> bool
val eqU : ('a, 'b) N.t -> ('a, 'c) N.t -> kcmp:('a, 'd) N.cmp -> veq:('b -> 'c -> bool) Js.Fn.arity2 -> bool
val has : ('a, 'b) N.t -> 'a -> cmp:('a, 'c) N.cmp -> bool
val forEach : ('a, 'b) N.t -> ('a -> 'b -> unit) -> unit
val forEachU : ('a, 'b) N.t -> ('a -> 'b -> unit) Js.Fn.arity2 -> unit
val reduce : ('a, 'b) N.t -> 'c -> ('c -> 'a -> 'b -> 'c) -> 'c
val reduceU : ('a, 'b) N.t -> 'c -> ('c -> 'a -> 'b -> 'c) Js.Fn.arity3 -> 'c
val every : ('a, 'b) N.t -> ('a -> 'b -> bool) -> bool
val everyU : ('a, 'b) N.t -> ('a -> 'b -> bool) Js.Fn.arity2 -> bool
val some : ('a, 'b) N.t -> ('a -> 'b -> bool) -> bool
val someU : ('a, 'b) N.t -> ('a -> 'b -> bool) Js.Fn.arity2 -> bool
val size : ('a, 'b) N.t -> int
val toList : ('a, 'b) N.t -> ('a * 'b) list
val toArray : ('a, 'b) N.t -> ('a * 'b) array
val keysToArray : ('a, 'b) N.t -> 'a array
val valuesToArray : ('a, 'b) N.t -> 'b array
val minimum : ('a, 'b) N.t -> ('a * 'b) option
val maximum : ('a, 'b) N.t -> ('a * 'b) option
val minKey : ('a, 'b) N.t -> 'a option
val maxKey : ('a, 'b) N.t -> 'a option
val minKeyUndefined : ('a, 'b) N.t -> 'a Js.undefined
val maxKeyUndefined : ('a, 'b) N.t -> 'a Js.undefined
val minUndefined : ('a, 'b) N.t -> ('a * 'b) Js.undefined
val maxUndefined : ('a, 'b) N.t -> ('a * 'b) Js.undefined
val get : ('a, 'b) N.t -> 'a -> cmp:('a, 'c) N.cmp -> 'b option
val getUndefined : ('a, 'b) N.t -> 'a -> cmp:('a, 'c) N.cmp -> 'b Js.undefined
val getWithDefault : ('a, 'b) N.t -> 'a -> 'b -> cmp:('a, 'c) N.cmp -> 'b
val getExn : ('a, 'b) N.t -> 'a -> cmp:('a, 'c) N.cmp -> 'b
val mapWithKey : ('a, 'b) N.t -> ('a -> 'b -> 'c) -> ('a, 'c) N.t
val mapWithKeyU : ('a, 'b) N.t -> ('a -> 'b -> 'c) Js.Fn.arity2 -> ('a, 'c) N.t
val mapU : ('a, 'b) N.t -> ('b -> 'c) Js.Fn.arity1 -> ('a, 'c) N.t
val map : ('a, 'b) N.t -> ('b -> 'c) -> ('a, 'c) N.t
val keep : ('a, 'b) N.t -> ('a -> 'b -> bool) -> ('a, 'b) N.t
val keepU : ('a, 'b) N.t -> ('a -> 'b -> bool) Js.Fn.arity2 -> ('a, 'b) N.t
val partitionU : ('a, 'b) N.t -> ('a -> 'b -> bool) Js.Fn.arity2 -> ('a, 'b) N.t * ('a, 'b) N.t
val partition : ('a, 'b) N.t -> ('a -> 'b -> bool) -> ('a, 'b) N.t * ('a, 'b) N.t
val checkInvariantInternal : ('a, 'b) N.t -> unit
val set : ('a, 'b) N.t -> 'a -> 'b -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val updateU : ('a, 'b) N.t -> 'a -> ('b option -> 'b option) Js.Fn.arity1 -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val update : ('a, 'b) N.t -> 'a -> ('b option -> 'b option) -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val removeAux0 : ('a, 'b) N.node -> 'a -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val remove : ('a, 'b) N.node option -> 'a -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val mergeMany : ('a, 'b) N.t -> ('a * 'b) A.t -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val splitAuxPivot : ('a, 'b) N.node -> 'a -> 'b option ref -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t * ('a, 'b) N.t
val split : ('a, 'b) N.node option -> 'a -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> (('a, 'b) N.t * ('a, 'b) N.t) * 'b option
val findFirstByU : ('a, 'b) N.t -> ('a -> 'b -> bool) Js.Fn.arity2 -> ('a * 'b) option
val findFirstBy : ('a, 'b) N.t -> ('a -> 'b -> bool) -> ('a * 'b) option
val mergeU : ('a, 'b) N.t -> ('a, 'c) N.t -> ('a -> 'b option -> 'c option -> 'd option) Js.Fn.arity3 -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'd) N.t
val merge : ('a, 'b) N.t -> ('a, 'c) N.t -> ('a -> 'b option -> 'c option -> 'd option) -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'd) N.t
val removeMany0 : ('a, 'b) N.node -> 'a A.t -> int -> int -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
val removeMany : ('a, 'b) N.node option -> 'a A.t -> cmp:('a -> 'a -> int) Js.Fn.arity2 -> ('a, 'b) N.t
OCaml

Innovation. Community. Security.