   (let [depth 0
         max-depth max-total-depth]
     (flatten
-     (mapfn #(add-bolt-at % % [] % model depth max-depth)
+     (mapfn #(add-bolt-at % % [] % model depth max-depth truncate-children)
             (lightning-bolts model spec 0 max-total-depth)))))
 
 (defn generate-n

                                 comp-bolts
                                 (+ 1 depth)
                                 max-depth
                                 top-bolt))))))))
(defn generate2
  "Return all expressions matching spec _spec_ given the model _model_."
  [spec model

                           depth max-depth top-bolt path-from-top)
               (let [path (first comp-paths)
                     bolts-at (first bolts-at-paths)]
                 (flatten
                  (mapfn #(let [bolt (assoc-in bolt path %)]
                            (if (= false (get-in % [:phrasal]))
                              [bolt]
                              (-> (add-bolt-at top-bolt bolt path % model depth max-depth truncate?)
                                  ((fn [with-added-complement]
                                     (if truncate? (truncate with-added-complement [path] model)
                                         with-added-complement))))))
                         bolts-at)))))))))

(defn add-bolt-at [top-bolt bolt path bolt-at model depth max-depth truncate?]
  (lazy-seq
   (mapfn #(do-defaults % model)
          (let [comp-paths (find-comp-paths bolt-at)
