export const binarySearch = < T = unknown > ( array , callback ) => { let lo = - 1 ; let hi = array . length ; while ( 1 + lo < hi ) { const mi = lo + ( ( hi - lo ) >> 1 ) ; if ( callback ( array [ mi ] ) ) { hi = mi ; } else { lo = mi ; } } return hi ; } ;