pub type SplitterFn<T> = Arc<dyn for<'a> Fn(&'a T) -> Vec<(usize, usize)> + Send + Sync>;
pub struct SplitterFn<T> { /* private fields */ }