// @flow strict type ItemComparer = (a: Item, b: Item) => boolean; export function areArraysEqual( array1: Item[], array2: Item[], itemComparer: ItemComparer = (a, b) => a === b, ): boolean { return ( array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index])) ); }