anchor.diff:  		 (eldiff2 (* eldiff eldiff)))
   	(sqrt (+ ndiff2 ediff2 eldiff2))))
   
  -(defgeneric distance (el)
  -  (:documentation "Compute the distance of the element."))
  +;; (defgeneric distance (el)
  +;;   (:documentation "Compute the distance of the element."))
   
  -(defmethod distance ((seg gpx-segment))
  -  (loop for i in (gpx-segment-points seg)
  -		for j in (cdr (gpx-segment-points seg))
  -		summing (distance-between i j) into total
  -		finally (return total)))
  +;; (defmethod distance ((seg gpx-segment))
  +;;   (loop for i in (gpx-segment-points seg)
  +;; 		for j in (cdr (gpx-segment-points seg))
  +;; 		summing (distance-between i j) into total
  +;; 		finally (return total)))
   
  -(defmethod distance ((track gpx-track))
  -  (loop for seg in (gpx-track-segments track)
  -		summing (distance seg) into total
  -		finally (return total)))
  +;; (defmethod distance ((track gpx-track))
  +;;   (loop for seg in (gpx-track-segments track)
  +;; 		summing (distance seg) into total
  +;; 		finally (return total)))
   
  -(defmethod distance ((file gpx-file))
  -  (loop for track in (gpx-file-tracks file)
  -		summing (distance track)))
  +;; (defmethod distance ((file gpx-file))
  +;;   (loop for track in (gpx-file-tracks file)
  +;; 		summing (distance track)))
   
   (defun elevation-diff (p1 p2)
     (- (gpx-pt-ele p1) (gpx-pt-ele p2)))
  
positive.code:   (format t "Total elevation gain: ~a ~a~%" (if (eq units 'imperial) (meters-to-feet eg) eg) shortunit)
    (format t "Total elevation loss: ~a ~a~%" (if (eq units 'imperial) (meters-to-feet el) el) shortunit)
    (format t "Total elevation loss: ~a ~a~%" (if (eq units 'imperial) (meters-to-miles dist) (/ dist 1000.0)) longunit)))
  
negative.code: 		diff
  	  0.0)))
  
  (defgeneric traverse2 (el func)
    (:documentation "Traverse the GPX element and sum the results of (func point[i] point[i+1])"))
  
  (defmethod traverse2 ((seg gpx-segment) func)
    (loop for i in (gpx-segment-points seg)
          for j in (cdr (gpx-segment-points seg))
          summing (apply func (list i j)) into total
          finally (return total)))
    
  (defmethod traverse2 ((track gpx-track) func)
    (loop for seg in (gpx-track-segments track)
  		summing (traverse2 seg func) into total
  		finally (return total)))
  
  (defmethod traverse2 ((file gpx-file) func)
    (loop for track in (gpx-file-tracks file)
  		summing (traverse2 track func)))
  
  
  (defun elevation-gain (el)
    (traverse2 el #'ele-gain))
  
  (defun elevation-loss (el)
    (traverse2 el #'ele-loss))
  
  (defun distance (el)
    (traverse2 el #'distance-between))
  
  (defun summarize (gpx &key (units 'imperial))
    (let ((eg (elevation-gain gpx))
  