          (parent-with-head-1 spec depth (rest parent-rules)))))))
 
 (defn get-lexemes 
-  "Get lexemes matching the spec. Use a model's index if available, where the index 
-   is a function that we call with _spec_ to get a set of indices. 
-   Otherwise use the model's entire lexeme."
+  "Get lexemes matching the spec. Use index, where the index 
+   is a function that we call with _spec_ to get a set of lexemes
+   that matches the given _spec_."
   [spec]
   (->>
    (index-fn spec)

          child-spec (u/get-in tree f)
          child-lexemes #(get-lexemes child-spec)
          child-trees #(parent-with-head child-spec depth)]
      (when println? (println (str "grow at:" ((:morph-ps model) tree))))
      (log/debug (str "grow at:" ((:morph-ps model) tree)))
      (lazy-cat
       (if (not (empty? f))
         (grow

                        result))
(def ^:dynamic truncate? false)
(def ^:dynamic println? false)
(def ^:dynamic default-fn (fn [x] [x]))
(def ^:dynamic model)
(def ^:dynamic morph-ps)
(def ^:dynamic index-fn)
(def ^:dynamic grammar)

(declare assoc-children)
(declare frontier)
