           []
           additions))
 
-(defn diff
-  "Create an edit script that may be used to transform a into b. See doc string
-  for clj-diff.core/diff."
-  [a b]
-  (let [a (vec (cons nil a))
-        b (vec (cons nil b))
-        ses (ses a b)
-        optimal-path (apply optimal-path a b ses)
-        script
+(defn path->script [a b path]
+  (let [script
         (reduce (fn [e p]
                   (let [c (:current e)
                         x (first p)

            (recur (rest d-range) endpoints)))
        [(+ n m) (- n m) endpoints]))))

(defn- optimal-path
  "Reconstruct the optimal path from source to sink using the information
  produced by the ses function."
  [a b d k endpoints]

        y (- x k)]
    [x y]))

(defn snake
  "Starting at point (x, y) return the x value of the point at the end of the
  longest snake on this diagonal. A snake is a sequence of diagonal moves
  connection match points on the edit graph."
