pub fn join(mut spans: Vec<Span>) -> Option<Span> {
        let mut combined = spans.pop()?;

        while let Some(span) = spans.pop() {
            combined = Span::combine(&combined, &span)
        }

        return Some(combined);
    }
Combines a set of `Span`s (think fold-left over
`Span::combine`). If the vector of spans passed
in is empty, this method panics.
passerine-common/src/span.rs