 (defn- make-sorted-red-node [-map-entry]
   (SortedRedNode. -map-entry))
 
-(defn- make-sorted-red-node-val [-map-entry]
-  (SortedRedNodeVal. -map-entry))
-
 (defn- make-sorted-red-branch [-map-entry -left -right]
   (SortedRedBranch. -map-entry -left -right))
 
-(defn- make-sorted-red-branch-val [-map-entry -left -right]
-  (SortedRedBranchVal. -map-entry -left -right))
-
 (defn- make-sorted-black-node [-map-entry]
   (SortedBlackNode. -map-entry))
 
-(defn- make-sorted-black-node-val [-map-entry]
-  (SortedBlackNodeVal. -map-entry))
-
 (defn- make-sorted-black-branch [-map-entry -left -right]
   (SortedBlackBranch. -map-entry -left -right))
 
-(defn- make-sorted-black-branch-val [-map-entry -left -right]
-  (SortedBlackBranchVal. -map-entry -left -right))
-
 (defn- make-black-node [-map-entry left right]
-  (let [v (val -map-entry)]
-    (if (and (nil? left) (nil? right))
-      (if (nil? v)
-        (make-sorted-black-node -map-entry)
-        (make-sorted-black-node-val -map-entry))
-      (if (nil? v)
-        (make-sorted-black-branch -map-entry left right)
-        (make-sorted-black-branch-val -map-entry left right)))))
+  (if (and (nil? left) (nil? right))
+    (make-sorted-black-node -map-entry)
+    (make-sorted-black-branch -map-entry left right)))
 
 (defn- make-red-node [-map-entry left right]
-  (let [v (val -map-entry)]
-    (if (and (nil? left) (nil? right))
-      (if (nil? v)
-        (make-sorted-red-node -map-entry)
-        (make-sorted-red-node-val -map-entry))
-      (if (nil? v)
-        (make-sorted-red-branch -map-entry left right)
-        (make-sorted-red-branch-val -map-entry left right)))))
+  (if (and (nil? left) (nil? right))
+    (make-sorted-red-node -map-entry)
+    (make-sorted-red-branch -map-entry left right)))
 
 (defn- left-balance [-map-entry ins right]
   (cond

      :else
        (make-black-node (-entry node) (-left node) this)))
  (-blacken [this]
    (make-sorted-black-branch-val -map-entry -left-node -right-node))
  (-redden [this]
    (throw (new-unsupported-error "Invariant Violation")))
  (-replace [this entry left right]

  (-replace [this entry left right]
    (make-black-node entry left right)))

(deftype SortedBlackBranch ^{:private true}
  [-map-entry -left-node -right-node]

