       z
       (recur (right z)))))
 
-(def leftmost start)
-(def rightmost end)
+(def leftmost "Alias for start." start)
+(def rightmost "Alias for end." end)
 
 (defn' lefts :- DoubleList
   "Get the left side of the zipper."

(ns stch.zipper
  "Zipper for sequential data. Keeps a
  history of the traversed positions."
  (:require [clojure.core :as core])
  (:use

               index
               (conj (:traversed z) index)))))

(def left "Alias for prev." prev)
(def right "Alias for next." next)

(defn' start? :- Boolean
  "Are we at the start of the zipper?"
  [z :- Zipper]
  (core/empty? (:left z)))

(def not-start?
  "Are we not at the start of the zipper?"
  (comp not start?))

(defn' end? :- Boolean
  "Are we at the end of the zipper?"
  [z :- Zipper]
  (core/empty? (:right z)))

(def not-end?
  "Are we not at the end of the zipper?"
  (comp not end?))

(defn' empty? :- Boolean
  "Is the zipper empty?"
