 
 (defn gen
   "Return a lazy sequence of every possible tree given a specification and a model."
-  [spec model depth & [from-bolts at-path]]
+  [spec model depth & [from-bolts]]
   (log/trace (str "gen@" depth "; spec=" (show-spec spec)))
   (when (< depth max-depth)
     (let [bolts (or from-bolts

(defn add-to-bolt-at-path
  "bolt + path => partial trees"
  [bolt path model]
  (let [complements (gen (get-in bolt path) model 0 nil path)]
    (if (empty? complements)
      (let [error-message
            (str "(improve grammar): no complements found for: "

              ;; ..otherwise it's a phrase, so return the lazy
              ;; sequence of adding all possible complements at every possible
              ;; position at the bolt.
              (add-comps-to-bolt bolt model
                                 (reverse (comp-paths depth)))))
           (gen spec model depth (rest bolts))))
        (if (not (= false (get-in spec [:phrasal] true)))
          (gen spec model (+ 1 depth)))))))

(defn get-bolts-for [model spec depth]
  (let [result
