   the collection is empty, throws an exception.  Note - not the same
   as next/butlast."
   [coll]
-  (when-not (nil? coll) (-pop coll)))
+  (-pop coll))
 
 (defn contains?
   "Returns true if key is present in the given collection, otherwise

   val(s). When applied to a vector, returns a new vector that
   contains val at index. Note - index must be <= (count vector)."
  [coll k v]
  (when-not (nil? coll)
    (-assoc coll k v)))

(defn zipmap
  "Returns a map with the keys mapped to the corresponding vals."

  also works for strings, arrays, regex Matchers and Lists, and,
  in O(n) time, for sequences."
  ([coll n]
     (-nth coll n))
  ([coll n not-found]
     (-nth coll n not-found)))

(defn get
  "Returns the value mapped to key, not-found or nil if key not present."
  ([o k]
     (-lookup o k))
  ([o k not-found]
     (-lookup o k not-found)))

(defn assoc
  "assoc[iate]. When applied to a map, returns a new map of the
