   indicates a wildcard that matches any character in the target word."
   [word clue guessed-chars]
   { :pre  [ (= (count word) (count clue)) 
-            (not-any? nil? word) ]
+            (not-any? #(= \- %) word) ]
     :post [] }
   (let [ pair-seq   (map vector clue word)  ; a sequence of pairs
          result     (every? #(or (=    (first %) (second %))
-                                 (nil? (first %)) )
+                                 (= \- (first %)) )
                       pair-seq) ]
     result ))
 

        (println )
        (let [
          keep-words      (filter #(keep-word? % clue #{} ) word-list) ]
            (print "clue: " (format-clue clue) "  ")
            (show-info "keep-words" keep-words)
            (if (= 1 (count keep-words))
              (let [final-guess (str/join (first keep-words)) ]

              ]
                (println "  new-guess" new-guess 
                  "  guessed-chars (" (count guessed-chars) ")" guessed-chars)
                (when (some #(= \- %) new-clue)
                  (recur  (conj guessed-chars new-guess)  new-clue ) )
              )
            )
