(defn
seg-combine
"Combine a source map segment vector and a relative\n source map segment vector and combine them to get\n an absolute segment posititon information as a vector."
[seg relseg]
(let
[[gcol source line col name]
seg
[rgcol rsource rline rcol rname]
relseg
nseg
[(+ gcol rgcol)
(+ (or source 0) rsource)
(+ (or line 0) rline)
(+ (or col 0) rcol)
(+ (or name 0) rname)]]
(if name (with-meta nseg {:name (+ name rname)}) nseg)))