   "dissoc[iate]. Returns a new map of the same (hashed/sorted) type,
   that does not contain a mapping for key(s)."
   [coll k]
-  (when-not (nil? coll)
-    (-dissoc coll k)))
+  (-dissoc coll k))
 
 (defn with-meta
   "Returns an object of the same type and value as obj, with
   map m as its metadata."
   [o meta]
-  (when-not (nil? o) (-with-meta o meta)))
+  (-with-meta o meta))
 
 (defn meta
   "Returns the metadata of obj, returns nil if there is no metadata."
   [o]
-  (when-not (nil? o) (-meta o)))
+  (-meta o))
 
 (defn peek
   "For a list or queue, same as first, for a vector, same as, but much
   more efficient than, last. If the collection is empty, returns nil."
   [coll]
-  (when-not (nil? coll) (-peek coll)))
+  (-peek coll))
 
 (defn pop
   "For a list or queue, returns a new list/queue without the first

  the collection is empty, throws an exception.  Note - not the same
  as next/butlast."
  [coll]
  (when-not (nil? coll) (-pop coll)))

(defn contains?
  "Returns true if key is present in the given collection, otherwise

     (if xs
       (recur (conj coll x) (first xs) (next xs))
       (conj coll x))))


;;; Math - variadic forms will not work until the following implemented:
;;; first, next, reduce
