 (declare exception)
 (declare find-comp-paths-in)
 (declare lazy-mapcat)
-(declare lazy-shuffle)
 (declare lexemes-before-phrases)
 (declare lightning-bolts)
 (declare generate-all)

                                          complement-candidate-lexemes))))
               
        bolt-child-synsem (get-in bolt (concat path [:synsem]))
        lexical-complements (lazy-shuffle
                             (filter (fn [lexeme]
                                       (and (not-fail? (unify (get-in lexeme [:synsem] :top)
                                                              bolt-child-synsem))))

        ;; this is the relative depth; that is, the depth from the top of the current lightning bolt.
        ;; total-depth, on the other hand, is the depth all the way to the top of the entire
        ;; expression, which might involve several parent lightning bolts.
        parents (shuffle (candidate-parents grammar spec))]
    (let [lexical ;; 1. generate list of all phrases where the head child of each parent is a lexeme.
          (when (= false (get-in spec [:head :phrasal] false))
            (lazy-mapcat
