Module Parallel_arrays

module type Get = sig ... end
module type Set = sig ... end
module type Init = sig ... end
module type Map = sig ... end
module type Reduce = sig ... end
module type Sort = sig ... end
module type Scan = sig ... end
module type Filter = sig ... end
module type Filter_map = sig ... end
module type Inplace = sig ... end
module type Islice = sig ... end
module type Slice = sig ... end

The 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 ... end
module Iarray : sig ... end
module Vec : sig ... end
module Bigstring : sig ... end
module Bigarray : sig ... end