 (ns sample.rangemap)
 
 
-(deftype RangeMap [kind ^clojure.lang.IPersistentMap m leftfn rightfn]
+(deftype RangeMap [kind ^clojure.lang.IPersistentMap m leftfn rightfn fallback-val]
 
   clojure.lang.MapEquivalence
 
   clojure.lang.IPersistentMap
 
   (assoc [this k v]
-    (RangeMap. kind (.assoc m k v) leftfn rightfn))
+    (RangeMap. kind (.assoc m k v) leftfn rightfn fallback-val))
 
   (assocEx [this k v]
-    (RangeMap. kind (.assocEx m k v) leftfn rightfn))
+    (RangeMap. kind (.assocEx m k v) leftfn rightfn fallback-val))
 
   (without [this k]
-    (RangeMap. kind (.without m k) leftfn rightfn))
+    (RangeMap. kind (.without m k) leftfn rightfn fallback-val))
 
 
   clojure.lang.ILookup

    (.equiv m o))

  (empty [this]
    (RangeMap. kind (.empty m) leftfn rightfn))

  (cons [this o]
    (RangeMap. kind (.cons m o) leftfn rightfn))

  (count [this]
    (.count m))

                                          (fn [lastki ki] ki)]
                           :find-ceiling [(fn [lastki ki] ki)
                                          (fn [lastki ki] lastki)])]
    (->RangeMap kind (apply sorted-map kvs) leftfn rightfn fallback-val)))
