Module type Js_typed_array.S

module type S = sig .. end

type elt 
type 'a typed_array 
type t = elt typed_array 
val unsafe_get : t -> int -> elt
val unsafe_set : t -> int -> elt -> unit
val buffer : t -> Js_typed_array.array_buffer
val byteLength : t -> int
val byteOffset : t -> int
val setArray : elt array -> t -> unit
val setArrayOffset : elt array -> int -> t -> unit
val length : t -> int
val copyWithin : to_:int -> t -> t
val copyWithinFrom : to_:int -> from:int -> t -> t
val copyWithinFromRange : to_:int -> start:int -> end_:int -> t -> t
val fillInPlace : elt -> t -> t
val fillFromInPlace : elt -> from:int -> t -> t
val fillRangeInPlace : elt ->
start:int -> end_:int -> t -> t
val reverseInPlace : t -> t
val sortInPlace : t -> t
val sortInPlaceWith : (elt -> elt -> int [@bs]) ->
t -> t
val includes : elt -> t -> bool
ES2016
val indexOf : elt -> t -> int
val indexOfFrom : elt -> from:int -> t -> int
val join : t -> string
val joinWith : string -> t -> string
val lastIndexOf : elt -> t -> int
val lastIndexOfFrom : elt -> from:int -> t -> int
val slice : start:int -> end_:int -> t -> t
val copy : t -> t
val sliceFrom : int -> t -> t
val subarray : start:int -> end_:int -> t -> t
val subarrayFrom : int -> t -> t
val toString : t -> string
val toLocaleString : t -> string
val every : (elt -> bool [@bs]) -> t -> bool
val everyi : (elt -> int -> bool [@bs]) -> t -> bool
val filter : (elt -> bool [@bs]) ->
t -> t
should we use bool or boolan seems they are intechangeable here
val filteri : (elt -> int -> bool [@bs]) ->
t -> t
val find : (elt -> bool [@bs]) ->
t -> elt Js.undefined
val findi : (elt -> int -> bool [@bs]) ->
t -> elt Js.undefined
val findIndex : (elt -> bool [@bs]) -> t -> int
val findIndexi : (elt -> int -> bool [@bs]) -> t -> int
val forEach : (elt -> unit [@bs]) -> t -> unit
val forEachi : (elt -> int -> unit [@bs]) -> t -> unit
val map : (elt -> 'b [@bs]) ->
t -> 'b typed_array
val mapi : (elt -> int -> 'b [@bs]) ->
t -> 'b typed_array
val reduce : ('b -> elt -> 'b [@bs]) -> 'b -> t -> 'b
val reducei : ('b -> elt -> int -> 'b [@bs]) ->
'b -> t -> 'b
val reduceRight : ('b -> elt -> 'b [@bs]) -> 'b -> t -> 'b
val reduceRighti : ('b -> elt -> int -> 'b [@bs]) ->
'b -> t -> 'b
val some : (elt -> bool [@bs]) -> t -> bool
val somei : (elt -> int -> bool [@bs]) -> t -> bool