     (if truncate-children
       (->
        (lightning-bolts language-model spec 0 total-depth :max-total-depth max-total-depth)
-       (add-all-comps language-model total-depth)
-       (truncate-expressions [[:head][:comp]]))
+       (add-all-comps language-model total-depth true)
+       (truncate-expressions [[:head]]))
       (->
        (lightning-bolts language-model spec 0 total-depth :max-total-depth max-total-depth)
-       (add-all-comps language-model total-depth)))))
-
-(defn add-all-comps [bolts language-model total-depth]
+       (add-all-comps language-model total-depth false)))))
+
+(defn add-all-comps [bolts language-model total-depth truncate-children]
   (log/trace (str "add-all-comps with (empty? bolts): " (empty? bolts)))
   (lazy-mapcat
    (fn [bolt]
      (add-all-comps-with-paths [bolt] language-model total-depth
-                               (find-comp-paths-in bolt [:head])))
+                               (find-comp-paths-in bolt [:head])
+                               truncate-children))
    bolts))
 
-(defn add-all-comps-with-paths [bolts language-model total-depth comp-paths]
+(defn add-all-comps-with-paths [bolts language-model total-depth comp-paths truncate-children]
   (log/trace (str "add-all-comps-with-paths with (empty? bolts): "
                   (empty? bolts)))
   (if (not (empty? comp-paths))

                          "@[" (string/join " " path) "]" "^" total-depth))
          (add-complement-to-bolt bolt path
                                  language-model (+ total-depth (count path))
                                  :max-total-depth max-total-depth))
        bolts)
       language-model
       total-depth
       (rest comp-paths)))
    bolts))

(defn find-comp-paths-in [bolt path]

                                             complement-candidate-lexemes)]
    (filter #(not (fail? %))
            (mapfn (fn [complement]
                     (let [unified
                           (unify (copy bolt)
                                  (path-to-map path
                                               (copy complement)))]
                       (if truncate-children
                         (truncate unified [path])
                         unified)))
                  (let [debug (log/trace (str "add-complement-to-bolt(total-depth=" total-depth
                                              ",path=" path ",bolt=(" (show-bolt bolt path language-model)
                                              "): calling generate-all(" (strip-refs spec) ");"
