Maybe BufSpan field in RealSrcSpan is not strict enough
`SrcSpan` is defined as follows:
```
data SrcSpan =
RealSrcSpan !RealSrcSpan !(Maybe BufSpan) -- See Note [Why Maybe BufPos]
| UnhelpfulSpan !UnhelpfulSpanReason
```
There is a bang pattern on the `Maybe BufSpan` field, which probably doesn't do what the author anticipated because `Maybe` has a lazy field. The consequence of this is an accumulation of thunks due to `combineSrcSpans` not forcing `combineBufSpans` which
also leads to all `BufSpan`s to be retained after being combined.
Solution: Force the result of `combineBufSpans` in `combineSrcSpans`.
(This was observed using !3469)
cc @int-index
issue