Module Mixed_block_shape
A mixed block shape is essentially the runtime representation of a block (i.e.) value prefix and flat suffix), and the permutation from the type definition in the surface language to that representation.
module Singleton_mixed_block_element : sig ... endval print : Format.formatter -> _ t -> unitval of_mixed_block_elements :
print_locality:(Format.formatter -> 'a -> unit) ->
'a Lambda.mixed_block_element array ->
'a tval value_prefix : 'a t -> 'a Singleton_mixed_block_element.t arrayval flat_suffix : 'a t -> 'a Singleton_mixed_block_element.t arrayval value_prefix_len : 'a t -> intval flat_suffix_len : 'a t -> intval flattened_reordered_shape :
'a t ->
'a Singleton_mixed_block_element.t arrayAccess to the shape, as flattened and following the runtime restriction.
val lookup_path_producing_new_indexes : 'a t -> int list -> int listval new_indexes_to_old_indexes : 'a t -> int arrayval new_block_length : 'a t -> intval new_index_to_old_path : 'a t -> int -> int list