pub fn combine(a: &Span, b: &Span) -> Span {
        if a.source != b.source {
            panic!("Can't combine two Spans with separate sources");
        }

        let offset = a.offset.min(b.offset);
        let end = a.end().max(b.end());
        let length = end - offset;

        return Span::new(&a.source, offset, length);
    }
Creates a new `Span` which spans the space of the
previous two. ```plain
hello this is cool
^^^^^              | Span a
^^      | Span b
^^^^^^^^^^^^^      | combined
```
passerine-common/src/span.rs