sig
  val iter :
    'Partial_array.t ->
    values:(([< `Read | `Set_and_create ], 'Partial_array.t, 'b array)
            Fieldslib.Field.t_with_perm ->
            'Partial_array.t -> 'a array -> 'c) ->
    len:(([< `Read | `Set_and_create ], 'Partial_array.t, int)
         Fieldslib.Field.t_with_perm -> 'Partial_array.t -> int -> 'e) ->
    'e
  val fold :
    'Partial_array.t ->
    init:'->
    values:('->
            ([< `Read | `Set_and_create ], 'Partial_array.t, 'c array)
            Fieldslib.Field.t_with_perm ->
            'Partial_array.t -> 'a array -> 'd) ->
    len:('->
         ([< `Read | `Set_and_create ], 'Partial_array.t, int)
         Fieldslib.Field.t_with_perm -> 'Partial_array.t -> int -> 'f) ->
    'f
end