jon.recoil.org

Module Core.IarraySource

type 'a t = 'a Base.Iarray.t
include sig ... end
Sourceval quickcheck_generator__portable : 'a. 'a Ppx_quickcheck_runtime.Base_quickcheck.Generator.t @ portable -> 'a Base.Iarray.t Ppx_quickcheck_runtime.Base_quickcheck.Generator.t @ portable @@ portable
Sourceval quickcheck_observer__portable : 'a. 'a Ppx_quickcheck_runtime.Base_quickcheck.Observer.t @ portable -> 'a Base.Iarray.t Ppx_quickcheck_runtime.Base_quickcheck.Observer.t @ portable @@ portable
Sourceval quickcheck_shrinker__portable : 'a. 'a Ppx_quickcheck_runtime.Base_quickcheck.Shrinker.t @ portable -> 'a Base.Iarray.t Ppx_quickcheck_runtime.Base_quickcheck.Shrinker.t @ portable @@ portable
include sig ... end
Sourceval compare : 'a. ('a -> 'a -> int) -> 'a Core.Iarray.t -> 'a Core.Iarray.t -> int
Sourceval compare__local : 'a. ('a @ local -> 'a @ local -> int) -> 'a Core.Iarray.t @ local -> 'a Core.Iarray.t @ local -> int
Sourceval equal : 'a. ('a -> 'a -> bool) -> 'a Core.Iarray.t -> 'a Core.Iarray.t -> bool
Sourceval equal__local : 'a. ('a @ local -> 'a @ local -> bool) -> 'a Core.Iarray.t @ local -> 'a Core.Iarray.t @ local -> bool
Sourceval sexp_of_t : 'a. ('a -> Sexplib0.Sexp.t) -> 'a Core.Iarray.t -> Sexplib0.Sexp.t
val sexp_of_t__stack : 'a. ('a @ local -> Sexplib0.Sexp.t @ local) -> 'a Core.Iarray.t @ local -> Sexplib0.Sexp.t @ local
Sourceval t_of_sexp : 'a. (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a Core.Iarray.t
Sourceval t_sexp_grammar : 'a. 'a Sexplib0.Sexp_grammar.t -> 'a Core.Iarray.t Sexplib0.Sexp_grammar.t @@ portable
include sig ... end
include sig ... end
Sourceval globalize : 'a. ('a @ local -> 'a) -> 'a Core.Iarray.t @ local -> 'a Core.Iarray.t

Standard interfaces

include Base.Binary_searchable.S1__local with type 'a t := 'a Core.Iarray.t
val binary_search__local : ?pos:int -> ?len:int -> 'a Core.Iarray.t @ local -> compare:('a @ local -> 'key @ local -> int) @ local -> [ `Last_strictly_less_than | `Last_less_than_or_equal_to | `Last_equal_to | `First_equal_to | `First_greater_than_or_equal_to | `First_strictly_greater_than ] -> 'key @ local -> int option @ local
val binary_search_segmented : ?pos:int -> ?len:int -> 'a Core.Iarray.t -> segment_of:('a -> [ `Left | `Right ]) @ local -> [ `Last_on_left | `First_on_right ] -> int option @ local
val binary_search_segmented__local : ?pos:int -> ?len:int -> 'a Core.Iarray.t @ local -> segment_of:('a @ local -> [ `Left | `Right ]) @ local -> [ `Last_on_left | `First_on_right ] -> int option @ local
include Base.Indexed_container.S1_with_creators__stack with type 'a t := 'a Core.Iarray.t
val iteri : 'a Core.Iarray.t -> f:(int -> 'a -> unit) @ local -> unit
val existsi : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> bool
val for_alli : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> bool
val counti : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> int
val iteri_until : 'a Core.Iarray.t -> f:(int -> 'a -> (unit, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(int -> 'final) @ local -> 'final
val find_mapi : 'a Core.Iarray.t -> f:(int -> 'a -> 'b option) @ local -> 'b option
val foldi_until : 'a Core.Iarray.t -> init:'acc -> f: (int -> 'acc -> 'a -> ('acc, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(int -> 'acc -> 'final) @ local -> 'final
val iteri_until__global__local : 'a Core.Iarray.t -> f: (int -> 'a -> (unit, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(int -> 'final @ local) @ local -> 'final @ local
val find_mapi__global__local : 'a Core.Iarray.t -> f:(int -> 'a -> 'b option @ local) @ local -> 'b option @ local
val foldi_until__global__local : 'a Core.Iarray.t -> init:'acc @ local -> f: (int -> 'acc @ local -> 'a -> ('acc, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(int -> 'acc @ local -> 'final @ local) @ local -> 'final @ local
val iteri__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> unit) @ local -> unit
val existsi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> bool
val for_alli__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> bool
val counti__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> int
val iteri_until__local__global : 'a Core.Iarray.t @ local -> f: (int -> 'a @ local -> (unit, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(int -> 'final) @ local -> 'final
val find_mapi__local__global : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b option) @ local -> 'b option
val foldi_until__local__global : 'a Core.Iarray.t @ local -> init:'acc -> f: (int -> 'acc -> 'a @ local -> ('acc, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(int -> 'acc -> 'final) @ local -> 'final
val iteri_until__local__local : 'a Core.Iarray.t @ local -> f: (int -> 'a @ local -> (unit, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(int -> 'final @ local) @ local -> 'final @ local
val find_mapi__local__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b option @ local) @ local -> 'b option @ local
val foldi_until__local__local : 'a Core.Iarray.t @ local -> init:'acc @ local -> f: (int -> 'acc @ local -> 'a @ local -> ('acc, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(int -> 'acc @ local -> 'final @ local) @ local -> 'final @ local
val findi : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> (int * 'a) option
val findi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> (int * 'a) option @ local
val is_empty : 'a Core.Iarray.t @ local -> bool
val iter : 'a Core.Iarray.t -> f:('a -> unit) @ local -> unit
val iter__local : 'a Core.Iarray.t @ local -> f:('a @ local -> unit) @ local -> unit
val exists : 'a Core.Iarray.t -> f:('a -> bool) @ local -> bool
val exists__local : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> bool
val for_all : 'a Core.Iarray.t -> f:('a -> bool) @ local -> bool
val for_all__local : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> bool
val count : 'a Core.Iarray.t -> f:('a -> bool) @ local -> int
val count__local : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> int
val find : 'a Core.Iarray.t -> f:('a -> bool) @ local -> 'a option
val find__local : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> 'a option @ local
val to_list : 'a Core.Iarray.t -> 'a list
val to_list__stack : 'a Core.Iarray.t @ local -> 'a list @ local
val min_elt : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> 'a option
val min_elt__local : 'a Core.Iarray.t @ local -> compare:('a @ local -> 'a @ local -> int) @ local -> 'a option @ local
val max_elt : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> 'a option
val max_elt__local : 'a Core.Iarray.t @ local -> compare:('a @ local -> 'a @ local -> int) @ local -> 'a option @ local
val sum : (module Base__Container_intf.Definitions.Summable__value_or_null with type t = 'sum) -> 'a Core.Iarray.t -> f:('a -> 'sum) @ local -> 'sum
val sum__global__local : (module Base__Container_intf.Definitions.Summable__value_or_null__local with type t = 'sum) -> 'a Core.Iarray.t -> f:('a -> 'sum @ local) @ local -> 'sum @ local
val sum__local__global : (module Base__Container_intf.Definitions.Summable__value_or_null with type t = 'sum) -> 'a Core.Iarray.t @ local -> f:('a @ local -> 'sum) @ local -> 'sum
val sum__local__local : (module Base__Container_intf.Definitions.Summable__value_or_null__local with type t = 'sum) -> 'a Core.Iarray.t @ local -> f:('a @ local -> 'sum @ local) @ local -> 'sum @ local
val iter_until : 'a Core.Iarray.t -> f:('a -> (unit, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(unit -> 'final) @ local -> 'final
val iter_until__global__local : 'a Core.Iarray.t -> f:('a -> (unit, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(unit -> 'final @ local) @ local -> 'final @ local
val iter_until__local__global : 'a Core.Iarray.t @ local -> f:('a @ local -> (unit, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:(unit -> 'final) @ local -> 'final
val iter_until__local__local : 'a Core.Iarray.t @ local -> f: ('a @ local -> (unit, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:(unit -> 'final @ local) @ local -> 'final @ local
val fold_result : 'a Core.Iarray.t -> init:'acc -> f:('acc -> 'a -> ('acc, 'e) Stdlib.result) @ local -> ('acc, 'e) Stdlib.result
val fold_result__global__local : 'a Core.Iarray.t -> init:'acc @ local -> f:('acc @ local -> 'a -> ('acc, 'e) Stdlib.result @ local) @ local -> ('acc, 'e) Stdlib.result @ local
val fold_result__local__global : 'a Core.Iarray.t @ local -> init:'acc -> f:('acc -> 'a @ local -> ('acc, 'e) Stdlib.result) @ local -> ('acc, 'e) Stdlib.result
val fold_result__local__local : 'a Core.Iarray.t @ local -> init:'acc @ local -> f:('acc @ local -> 'a @ local -> ('acc, 'e) Stdlib.result @ local) @ local -> ('acc, 'e) Stdlib.result @ local
val find_map : 'a Core.Iarray.t -> f:('a -> 'b option) @ local -> 'b option
val find_map__global__local : 'a Core.Iarray.t -> f:('a -> 'b option @ local) @ local -> 'b option @ local
val find_map__local__global : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b option) @ local -> 'b option
val find_map__local__local : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b option @ local) @ local -> 'b option @ local
val fold_until : 'a Core.Iarray.t -> init:'acc -> f:('acc -> 'a -> ('acc, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:('acc -> 'final) @ local -> 'final
val fold_until__global__local : 'a Core.Iarray.t -> init:'acc @ local -> f: ('acc @ local -> 'a -> ('acc, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:('acc @ local -> 'final @ local) @ local -> 'final @ local
val fold_until__local__global : 'a Core.Iarray.t @ local -> init:'acc -> f: ('acc -> 'a @ local -> ('acc, 'final) Base.Container.Continue_or_stop.t) @ local -> finish:('acc -> 'final) @ local -> 'final
val fold_until__local__local : 'a Core.Iarray.t @ local -> init:'acc @ local -> f: ('acc @ local -> 'a @ local -> ('acc, 'final) Base.Container.Continue_or_stop.t @ local) @ local -> finish:('acc @ local -> 'final @ local) @ local -> 'final @ local
val mem : 'a Core.Iarray.t -> 'a -> equal:('a -> 'a -> bool) @ local -> bool
val mem__local : 'a Core.Iarray.t @ local -> 'a @ local -> equal:('a @ local -> 'a @ local -> bool) @ local -> bool
val of_list : 'a list -> 'a Core.Iarray.t
val of_list__stack : 'a list @ local -> 'a Core.Iarray.t @ local
val append : 'a Core.Iarray.t -> 'a Core.Iarray.t -> 'a Core.Iarray.t
val append__stack : 'a Core.Iarray.t @ local -> 'a Core.Iarray.t @ local -> 'a Core.Iarray.t @ local
val concat__stack : 'a Core.Iarray.t Core.Iarray.t @ local -> 'a Core.Iarray.t @ local
val filter : 'a Core.Iarray.t -> f:('a -> bool) @ local -> 'a Core.Iarray.t
val filter__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> 'a Core.Iarray.t @ local
val partition_tf : 'a Core.Iarray.t -> f:('a -> bool) @ local -> 'a Core.Iarray.t * 'a Core.Iarray.t
val partition_tf__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> bool) @ local -> 'a Core.Iarray.t * 'a Core.Iarray.t @ local
Sourceval map : 'a Core.Iarray.t -> f:('a -> 'b) @ local -> 'b Core.Iarray.t
val map__stack : 'a Core.Iarray.t -> f:('a -> 'b @ local) @ local -> 'b Core.Iarray.t @ local
val map__local : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b) @ local -> 'b Core.Iarray.t
val map__local__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b @ local) @ local -> 'b Core.Iarray.t @ local
val filter_map : 'a Core.Iarray.t -> f:('a -> 'b option) @ local -> 'b Core.Iarray.t
val filter_map__stack : 'a Core.Iarray.t -> f:('a -> 'b option @ local) @ local -> 'b Core.Iarray.t @ local
val filter_map__local : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b option) @ local -> 'b Core.Iarray.t
val filter_map__local__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b option @ local) @ local -> 'b Core.Iarray.t @ local
val concat_map : 'a Core.Iarray.t -> f:('a -> 'b Core.Iarray.t) @ local -> 'b Core.Iarray.t
val concat_map__stack : 'a Core.Iarray.t -> f:('a -> 'b Core.Iarray.t @ local) @ local -> 'b Core.Iarray.t @ local
val concat_map__local : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b Core.Iarray.t) @ local -> 'b Core.Iarray.t
val concat_map__local__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> 'b Core.Iarray.t @ local) @ local -> 'b Core.Iarray.t @ local
val partition_map : 'a Core.Iarray.t -> f:('a -> ('b, 'c) Base__Either0.t) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t
val partition_map__stack : 'a Core.Iarray.t -> f:('a -> ('b, 'c) Base__Either0.t @ local) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t @ local
val partition_map__local : 'a Core.Iarray.t @ local -> f:('a @ local -> ('b, 'c) Base__Either0.t) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t
val partition_map__local__stack : 'a Core.Iarray.t @ local -> f:('a @ local -> ('b, 'c) Base__Either0.t @ local) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t @ local
val to_array : 'a Core.Iarray.t -> 'a array
val of_array : 'a array -> 'a Core.Iarray.t
val of_array__stack : 'a array @ local -> 'a Core.Iarray.t @ local
val filteri : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> 'a Core.Iarray.t
val filteri__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> 'a Core.Iarray.t @ local
val partitioni_tf : 'a Core.Iarray.t -> f:(int -> 'a -> bool) @ local -> 'a Core.Iarray.t * 'a Core.Iarray.t

partitioni_tf t ~f is like partition_tf. Additionally, it passes the index as an argument.

val partitioni_tf__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> bool) @ local -> 'a Core.Iarray.t * 'a Core.Iarray.t @ local

partitioni_tf t ~f is like partition_tf. Additionally, it passes the index as an argument.

val mapi : 'a Core.Iarray.t -> f:(int -> 'a -> 'b) @ local -> 'b Core.Iarray.t

mapi is like map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val mapi__stack : 'a Core.Iarray.t -> f:(int -> 'a -> 'b @ local) @ local -> 'b Core.Iarray.t @ local

mapi is like map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val mapi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b) @ local -> 'b Core.Iarray.t

mapi is like map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val mapi__local__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b @ local) @ local -> 'b Core.Iarray.t @ local

mapi is like map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val filter_mapi : 'a Core.Iarray.t -> f:(int -> 'a -> 'b option) @ local -> 'b Core.Iarray.t

filter_mapi is like filter_map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val filter_mapi__stack : 'a Core.Iarray.t -> f:(int -> 'a -> 'b option @ local) @ local -> 'b Core.Iarray.t @ local

filter_mapi is like filter_map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val filter_mapi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b option) @ local -> 'b Core.Iarray.t

filter_mapi is like filter_map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val filter_mapi__local__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b option @ local) @ local -> 'b Core.Iarray.t @ local

filter_mapi is like filter_map. Additionally, it passes in the index of each element as the first argument to the mapped function.

val concat_mapi : 'a Core.Iarray.t -> f:(int -> 'a -> 'b Core.Iarray.t) @ local -> 'b Core.Iarray.t

concat_mapi t ~f is like concat_map. Additionally, it passes the index as an argument.

val concat_mapi__stack : 'a Core.Iarray.t -> f:(int -> 'a -> 'b Core.Iarray.t @ local) @ local -> 'b Core.Iarray.t @ local

concat_mapi t ~f is like concat_map. Additionally, it passes the index as an argument.

val concat_mapi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b Core.Iarray.t) @ local -> 'b Core.Iarray.t

concat_mapi t ~f is like concat_map. Additionally, it passes the index as an argument.

val concat_mapi__local__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> 'b Core.Iarray.t @ local) @ local -> 'b Core.Iarray.t @ local

concat_mapi t ~f is like concat_map. Additionally, it passes the index as an argument.

val partition_mapi : 'a Core.Iarray.t -> f:(int -> 'a -> ('b, 'c) Base__.Either0.t) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t

partition_mapi t ~f is like partition_map. Additionally, it passes the index as an argument.

val partition_mapi__stack : 'a Core.Iarray.t -> f:(int -> 'a -> ('b, 'c) Base__.Either0.t @ local) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t @ local

partition_mapi t ~f is like partition_map. Additionally, it passes the index as an argument.

val partition_mapi__local : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> ('b, 'c) Base__.Either0.t) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t

partition_mapi t ~f is like partition_map. Additionally, it passes the index as an argument.

val partition_mapi__local__stack : 'a Core.Iarray.t @ local -> f:(int -> 'a @ local -> ('b, 'c) Base__.Either0.t @ local) @ local -> 'b Core.Iarray.t * 'c Core.Iarray.t @ local

partition_mapi t ~f is like partition_map. Additionally, it passes the index as an argument.

include Base.Invariant.S1 with type 'a t := 'a Core.Iarray.t
val invariant : ('a -> unit) -> 'a Core.Iarray.t -> unit

Operators

Sourcemodule O : sig ... end
val (.:()) : 'a. 'a Basement.Stdlib_iarray_labels.t -> int -> 'a

An alias for get.

Indexing

val length : 'a. 'a Core.Iarray.t @ immutable -> int
include sig ... end
val get : 'a. 'a Core.Iarray.t -> int -> 'a
val get_opt : 'a Core.Iarray.t -> int -> 'a option
val unsafe_get : 'a. 'a Core.Iarray.t -> int -> 'a
include sig ... end
include sig ... end
val last_exn : 'a Core.Iarray.t -> 'a

Functional update

val set : 'a Core.Iarray.t -> int -> 'a -> 'a Core.Iarray.t
val update : 'a Core.Iarray.t -> int -> f:('a -> 'a) -> 'a Core.Iarray.t

Constructors

val empty : _ Core.Iarray.t
val singleton : 'a -> 'a Core.Iarray.t
val create : len:int -> 'a -> mutate:('a array @ local -> unit) @ local -> 'a Basement.Stdlib_iarray_labels.t
val init : 'a. int -> f:(int -> 'a) @ local -> 'a Core.Iarray.t

Conversions

val of_sequence : 'a Base.Sequence.t -> 'a Core.Iarray.t
val to_sequence : 'a Core.Iarray.t -> 'a Base.Sequence.t
val of_list_rev : 'a list -> 'a Core.Iarray.t
val of_list_map : 'a list -> f:('a -> 'b) @ local -> 'b Core.Iarray.t
val of_list_mapi : 'a list -> f:(int -> 'a -> 'b) @ local -> 'b Core.Iarray.t
val of_list_rev_map : 'a list -> f:('a -> 'b) @ local -> 'b Core.Iarray.t

Subsequences

val prefix : 'a Core.Iarray.t -> len:int -> 'a Core.Iarray.t
val suffix : 'a Core.Iarray.t -> len:int -> 'a Core.Iarray.t
val drop_prefix : 'a Core.Iarray.t -> len:int -> 'a Core.Iarray.t
val drop_suffix : 'a Core.Iarray.t -> len:int -> 'a Core.Iarray.t
val group : 'a Core.Iarray.t -> break:('a -> 'a -> bool) @ local -> 'a Core.Iarray.t Core.Iarray.t
val split_n : 'a Core.Iarray.t -> int -> 'a Core.Iarray.t * 'a Core.Iarray.t

split_n t n returns a pair of iarrays (first, second) where first contains the first n elements of t and second contains the remaining elements.

  • If n >= length t, returns (t, empty).
  • If n <= 0, returns (empty, t).
val chunks_of : 'a Core.Iarray.t -> length:int -> 'a Core.Iarray.t Core.Iarray.t

chunks_of t ~length returns an iarray of iarrays whose concatenation is equal to the original iarray. Every iarray has length elements, except for possibly the last iarray, which may have fewer. chunks_of raises if length <= 0.

Reordering

val rev : 'a Core.Iarray.t -> 'a Core.Iarray.t
val sort : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> 'a Core.Iarray.t
val stable_sort : 'a Core.Iarray.t -> compare:('a -> 'a -> int) -> 'a Core.Iarray.t
val dedup_and_sort : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> 'a Core.Iarray.t
val sort_and_group : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> 'a Core.Iarray.t Core.Iarray.t
val is_sorted : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> bool
val is_sorted_strictly : 'a Core.Iarray.t -> compare:('a -> 'a -> int) @ local -> bool

Combining elements

val reduce : 'a Core.Iarray.t -> f:('a -> 'a -> 'a) @ local -> 'a option
val reduce_exn : 'a Core.Iarray.t -> f:('a -> 'a -> 'a) @ local -> 'a
val combine_errors_unit : unit Base.Or_error.t Core.Iarray.t -> unit Base.Or_error.t
include sig ... end
include sig ... end
val fold : 'a ('acc : value_or_null). 'a Core.Iarray.t -> init:'acc -> f:('acc -> 'a -> 'acc) @ local -> 'acc
val foldi : 'a ('acc : value_or_null). 'a Core.Iarray.t -> init:'acc -> f:(int -> 'acc -> 'a -> 'acc) @ local -> 'acc
val fold_right : 'a ('acc : value_or_null). 'a Core.Iarray.t -> init:'acc -> f:('a -> 'acc -> 'acc) @ local -> 'acc
val fold_map : 'a Core.Iarray.t -> init:'acc -> f:('acc -> 'a -> 'acc * 'b) @ local -> 'acc * 'b Core.Iarray.t
val fold_mapi : 'a Core.Iarray.t -> init:'acc -> f:(int -> 'acc -> 'a -> 'acc * 'b) @ local -> 'acc * 'b Core.Iarray.t

Multiple arrays

val zip : 'a Core.Iarray.t -> 'b Core.Iarray.t -> ('a * 'b) Core.Iarray.t option
val zip_exn : 'a Core.Iarray.t -> 'b Core.Iarray.t -> ('a * 'b) Core.Iarray.t
val unzip : ('a * 'b) Core.Iarray.t -> 'a Core.Iarray.t * 'b Core.Iarray.t
val map2_exn : 'a Core.Iarray.t -> 'b Core.Iarray.t -> f:('a -> 'b -> 'c) @ local -> 'c Core.Iarray.t
val iter2_exn : 'a Core.Iarray.t -> 'b Core.Iarray.t -> f:('a -> 'b -> unit) @ local -> unit
val cartesian_product : 'a Core.Iarray.t -> 'b Core.Iarray.t -> ('a * 'b) Core.Iarray.t

Random elements

val random_element : ?random_state:Base.Random.State.t -> 'a Core.Iarray.t -> 'a option
val random_element_exn : ?random_state:Base.Random.State.t -> 'a Core.Iarray.t -> 'a

Blit operations

val sub : 'a Core.Iarray.t -> pos:int -> len:int -> 'a Core.Iarray.t
val subo : ?pos:int -> ?len:int -> 'a Core.Iarray.t -> 'a Core.Iarray.t
Sourcemodule Of_array : sig ... end
Sourcemodule To_array : sig ... end
Sourcemodule Local : sig ... end

Operations for local iarrays.

Sourcemodule Unique : sig ... end

Operations for unique iarrays

Unsafe conversions

Immutable arrays can be converted to and from mutable arrays, as they can have the same representation. One must be careful not to modify the mutable array sharing a representation with an immutable array at any time when both are reachable. Doing so violates the invariants of the immutable array. The OCaml compiler might rely on these invariants when compiling or optimizing code that uses immutable arrays.

Sourcemodule Stable : sig ... end