   [a b]
   {:pre [(observable? a)
          (observable? b)]}
-  (letfn [(merge [& args] args)]
-    (.zip a b merge)))
+  (.zip a b vector))
 
 (defn concat
   "Concatenates all of the specified observable

  "Bypasses a specified number of elements in an
  observable sequence and then returns the remaining
  elements."
  [ob n]
  {:pre [(observable? ob) (number? f)]}
  (.take ob f))


(defn filter
  "Filters the elements of an observable sequence
  based on a predicate."
  [f ob]
  {:pre [(observable? ob) (fn? f)]}
  (.filter ob f))

(defn map
  "Apply a function to each element of an observable
  sequence."
  [f ob]
  {:pre [(observable? ob) (fn? f)]}
  (.map ob f))

