 
 (defn pull
   "Pull all commits into branch from remote-tip (only its ancestors)."
-  ([meta branch remote-meta remote-tip]
-     (let [branch-heads ((:branches meta) branch)
-           lcas (lowest-common-ancestors (:causal-order meta) branch-heads
-                                         (:causal-order remote-meta) #{remote-tip})]
-       (pull-lcas meta branch remote-tip lcas))))
+  [meta branch remote-meta remote-tip]
+  (let [branch-heads ((:branches meta) branch)
+        lcas (lowest-common-ancestors (:causal-order meta) branch-heads
+                                      (:causal-order remote-meta) #{remote-tip})]
+    (pull-lcas meta branch remote-tip lcas)))
 
 
 (defn merge-lcas

  [description author schema is-public value]
  (let [val-id (*id-fn* value)
        ts (*date-fn*)]
    {:meta {:id (*id-fn*)
            :description description
            :schema {:type "http://github.com/ghubber/geschichte"
                     :version 1}
            :public is-public
            :causal-order {val-id #{}
                           :root val-id}
            :branches {"master" #{val-id}}
            :head "master"
            :last-update ts

  [meta branch]
  (> (count ((:branches meta) branch)) 1))


(defn merge-necessary?
  "Determines whether branch-head is ancestor."
  [cut branch-head]
