pub fn merge_slice_produce2<'a, 'b, T, U>(
    allocator: Option<&'a Allocator<'a>>,
    slice: &'b [U],
    converter: impl FnMut(&'b U) -> T,
    action: impl FnMut(&'b U) -> Option<T>
) -> Option<&'a [T]>
where U: ArenaAllocatable<'b> + 'b, T: ArenaAllocatable<'a>,