Parallel_arraysmodule type Get = sig ... endmodule type Set = sig ... endmodule type Init = sig ... endmodule type Map = sig ... endmodule type Reduce = sig ... endmodule type Sort = sig ... endmodule type Scan = sig ... endmodule type Filter = sig ... endmodule type Filter_map = sig ... endmodule type Inplace = sig ... endmodule type Islice = sig ... endmodule type Slice = sig ... endThe following "parallel array" types are distinct from normal arrays because their elements must always be portable and must never share unsynchronized state.
This is the case when the element type 'a crosses portability and contention, or when the array elements are portable and live in separate capsules (that is, were returned at portable uncontended from portable functions).
To work with a pre-existing array whose element type does not cross portability and contention, the elements may be wrapped in Modes.Portended.t or Capsule.Data.t as applicable.
module Array : sig ... endmodule Iarray : sig ... endmodule Vec : sig ... endmodule Bigstring : sig ... endmodule Bigarray : sig ... end