(defn source-info
"Adds (when avaliable) :line, :column, :end-line, :end-column and :file info to the AST :env"
{:pass-info {:walk :pre :depends #{}}}
[ast]
(let [source-info (-source-info (:form ast) (:env ast))
merge-source-info (-merge-source-info source-info)]
(update-children (merge-source-info ast) merge-source-info)))