 
 (defrecord node-2 [a b])
 (defrecord node-3 [a b c])
+(defrecord finger-tree-empty [])
 (defrecord finger-tree-single [v])
 (defrecord finger-tree-deep [l m r])
 

        (dorun (map (fn [x] (print-entry x (object-id node))) node))))

(defmulti print-finger-tree (fn [node parent-id] (class node)))
(defmethod print-finger-tree nil [_ parent-id] nil)
(defmethod print-finger-tree finger-tree-single [node parent-id]
    (do
        (println (object-id node) " [label=\"Single\n" (:v node) "\"]")

            (go (func t n) (dec n) func filename))))

(println "Forwards..")
(go (finger-tree-empty.) 20 push-front "/tmp/forwards.dot")

(println "Backwards..")
(go (finger-tree-empty.) 20 push-back "/tmp/backwards.dot")

