     (getValue [] v)))
 
 (defn callable-map
-  "Create a map-like datastructure which overrides it's behaviour when called as
-  a fn from lookup to an arbitrary fn you specify at creation time."
+  "Create a map-like datastructure which overrides it's behaviour when
+   called as a fn from lookup to an arbitrary fn you specify at creation
+   time."
   ([m fun] (callable-map m fun {}))
   ([m fun metadata]
-     (proxy [clojure.lang.Associative clojure.lang.IFn clojure.lang.IObj clojure.lang.IMeta]
+     (proxy [clojure.lang.Associative
+             clojure.lang.IFn
+             clojure.lang.IObj
+             clojure.lang.IMeta]
          []
        (count       [] (count m))
        (seq         [] (seq m))

  [col]
  (map to-keyword col))

                                        ; Now available in recent Clojure versions as of Nov. 29, 2009...
                                        ;(defn byte-array [len]
                                        ;  (make-array (. Byte TYPE) len))

(def BYTE-ARRAY (byte-array 1))

(defn byte-array? [obj]

(def DEFAULT-PROMISE-TIMEOUT 5000)

(defn deref!
  "Read a future or promise waiting for timeout ms for it to be
   successfully dereferenced. Raises an exception if a timeout occurs"
  ([ref] (deref! ref DEFAULT-PROMISE-TIMEOUT))
  ([ref timeout]
     (let [timeout-indicator (gensym "deref-timeout")
