fn join(slice: &Self, sep: &T) -> Vec<T> {
        let mut iter = slice.iter();
        let first = match iter.next() {
            Some(first) => first,
            None => return vec![],
        };
        let size = slice.iter().map(|v| v.borrow().len()).sum::<usize>() + slice.len() - 1;
        let mut result = Vec::with_capacity(size);
        result.extend_from_slice(first.borrow());

        for v in iter {
            result.push(sep.clone());
            result.extend_from_slice(v.borrow())
        }
        result
    }
/////////////////////////////////////////////////////////////////////////////
Inserts `v[0]` into pre-sorted sequence `v[1..]` so that whole `v[..]` becomes sorted.

This is
benchmarks/haystacks/code/rust-library.rs