 
 (defn over [grammar left right]
   "opportunity for additional logging before calling the real (over)"
+  (log/debug (str "parse/over: grammar: " (count grammar) " left: " (type left) "; right: " (type right)))
   (over/over grammar left right))
 
 (defn create-ngram-map [args left ngrams grammar split-at x]


;; for now, using a language-independent tokenizer.
(def tokenizer #"[ ']")

(declare toks2)

(defn toks [s lexicon lookup]

     (create-unigram-map args (+ 1 index)))))

(defn create-bigram-map [args index grammar]
  (log/debug (str "create-bigram-map: args count: " (count args)))
  (if (< (+ 1 index) (count args))
    (let [left-side (subvec args index (+ 1 index))
          right-side (subvec args (+ 1 index) (+ 2 index))]
      (log/debug (str "create-bigram-map: size of left-side: " (count left-side)))
      (log/debug (str "create-bigram-map: size of right-side: " (count right-side)))
      (merge
       {[index (+ 2 index)]
        (over grammar
              (list (first left-side))
              (list (first right-side)))}
       (create-bigram-map args (+ index 1) grammar)))
    (create-unigram-map args 0)))

