module LinearizedArray: sig .. end
type t('a) = (array('a), array(int));
let make: array(array('a)) => t('a);
let read: (t('a), int, int) => 'a;
let write: (t('a), int, int, 'a) => unit;
let length: t('a) => int;
let row_length: (t('a), int) => int;
let read_row: (t('a), int) => list('a);
let row_length_via: (int => int, int) => int;
let read_via: (int => 'a, int => int, int, int) => 'a;
let read_row_via: (int => 'a, int => int, int) => list('a);