   (-> form zip/seq-zip zip/down zip/right arrow-line-number))
 
 
-(defn- basename [string]
-  (last (str/split string #"/")))
+(defn compile-time-fallback-position []
+  (list (current-file-name) @fallback-line-number))
 
 
 (defn current-file-name []

(ns pointer.core
  "Functions to help in finding the lines you care about."
  (:require [clojure.string :as str]
            [clojure.zip :as zip]))


;; COMPILE-TIME POSITIONS.
;; For annotating forms with information retrieved at runtime.
;; For reporting syntax errors

(def ^:private fallback-line-number (atom (Integer. 0)))


(defn set-fallback-line-number-from [form]
  (reset! fallback-line-number (or (:line (meta form)) (Integer. 0))))


(defn arrow-line-number
  "Return the best guess for what line an arrow symbol is on."

  (list (current-file-name)  (:line (meta form))))


(defn set-fallback-line-number-from [form]
  (reset! fallback-line-number (or (:line (meta form)) (Integer. 0))))


;; RUNTIME POSITIONS
;; These are positions that determine the file or line at runtime.

(defn form-with-copied-line-numbers [line-number-source form]
  (loop [loc (zip/seq-zip form)
