 					(add-pattern x)
 				))
 				(propagate-advances)
-				;(propagate-advances-generalize) 
+				(propagate-advances-generalize) 
 			)))
 

			(doseq [rule (*phrasal-patterns-map* sym)]
				(let [matched-sym (:slot-values (sym *completed-patterns*))
					  matched-value  (rule :slot-values)
						adv-rule (advance-pattern-concept rule  matched-sym)] ; FIX doesnt'w ork consistenly either
					;(println "GEN:  matched-sym:" matched-sym (rule :frame))
					(add-pattern adv-rule) ))))


	(let [frames-list ( apply concat
						(map (fn [ptn] (concat (get-abstractions ptn) (get-specializations ptn)))
								(keys *completed-patterns*))) ]
		(println "") 
		(println "completed:" (keys *completed-patterns*) " abs/spec:" frames-list )
		(println "waiting keys:" (keys *phrasal-patterns-map*))
		(doseq [sym frames-list]
			(println "  attempting with:" sym)
			(doseq [rule (*phrasal-patterns-map* sym)]
				(println "    on rule named " (rule :frame) " waiting on " (nth (rule :tokens) (rule :token-index)) )
				(let [matched-sym (:slot-values (sym *completed-patterns*))
					  matched-value  (rule :slot-values)
					  ;adv-rule (advance-pattern-concept rule matched-sym )] ; FIX
					  adv-rule (advance-pattern-concept rule {sym nil} )] ; FIX
					(cond rule (add-pattern rule))
				))
)))

