       [:h3 "Parallel Display of Paradigms:" ]
       [:p "Click on column to sort (multiple sort by holding down shift key). Columns can be dragged by clicking and holding on 'drag-bar' at top of column."]
      [:p "Paradigms:"
-      [:div [:h4 "======= Debug Info: ======="]
-       [:p "pnames: " (str pnames)]
-       [:p "headerset2: " [:pre headerset2]]
-       [:p "pivot: " [:pre pivot]]
-       [:p "heads: " (str heads)]
-       [:p "headvec: " (str headvec)]
-       [:p "pvalvec: " [:pre pvalvec]]
-       [:p "pdgmstr2: " [:pre pdgmstr2]]
-       ;;[:p "vvec: " [:pre vvec]]
-       [:p "vvec: " (str vvec)]
-       [:p "pmapvec: " [:pre pmapvec]]
-       [:p "prmaps: " [:pre prmaps]]
-       [:p "pmaps: " [:pre pmaps]]
-       [:p "keylists: " [:pre keylists]]
-       [:p "keystring: " [:pre keystring]]
-       [:p "keyset: " [:pre keyset]]
-       [:p "==========================="]]
       [:ol
       (for [pname pnames]
         [:li pname])]]

  (let [hmap1 (split prmp #" ")
        hmap2 (apply hash-map hmap1)]
    (clojure.walk/keywordize-keys hmap2)))
        
(defn handle-multimodplldisplay4
  "In this version pivot/keyset can be generalized beyond png any col (eventually any sequence of cols) between col-1 and token column. (Need to find out how to 'presort' cols before initial display?)"
  [pdgms headerset2 pdgmstr2 pivotname]
  (let [pnamestr (clojure.string/replace pdgms #"[\[\]\"]" "")
        pnames (split pnamestr #" ")
        pivot (read-string pivotname)
        ;; get rid of spurious line-feeds
        ;;pdgmstr2a (str pdgmstr2)
        pdgmstr3 (cleanpdgms pdgmstr2)
        ;; map each 'val-string-w/o-pivot-val token' to token
        prows (split pdgmstr3 #"\\r\\n")
        pcells (for [prow prows] (split prow #","))
        pivot-map (for [prow pcells] (hash-map (nth prow pivot) (vec-remove prow pivot)))
        ;; group the val-tokens associated with each pivot val
        newpdgms (merge-matches pivot-map)
        ;; make a vector of pivot vals
        pvalvec (vec (for [npdgm newpdgms] (str (key npdgm))))
        ;; e.g., ["Plural" "Singular"]
        ;; make a vector of pdgm rows for each pivot

  (update-in m [(key map-entry)] (fnil conj []) (val map-entry)))
(defn merge-matches [property-map-list]
  (reduce conj-in {} (apply clojure.core/concat property-map-list)))
(defn vec2map 
  "join all elements of vector but last with ','; last with ' '"
  [row] 
  (let [prow (clojure.string/join "," row)]
   (clojure.string/replace prow #"(.*),(.*?$)" "$1 $2")))
;;(clojure.string/replace (join "," row) #"(.*),(.*?$)" "$1 $2"))

