            [start end $]))
 
 
-(defn token-prop-grouper4
+(defn tkn-prop-grouper4
   [pos-pairs start end]
   (if (empty? pos-pairs) {:last-start start :last-end end :pairs []}
       (let [{:keys [last-start last-end pairs]} pos-pairs]

          {}
          pairs))

(defn token-prop-grouper5
  [m]
  (reduce (fn [agg [a b c]]
            (if b
              (assoc-in agg
                        [a b]
                        (token-prop-grouper6 c))
              agg))
          {}
          (for [[k kv] m

                 :last-end end
                 :pairs (conj pairs [last-start last-end]))))))

(defn tkn-prop-grouper3
  [start end]
  (fn [agg pos-pairs]
    (update-in agg pos-pairs tkn-prop-grouper4 start end)))

(defn tkn-prop-grouper2
  [agg [start end props]]
  (reduce (tkn-prop-grouper3 start end)
          agg
          props))

(defn tkn-prop-grouper6
  [pairs]
  (reduce (fn [agg [start end]]
            (update-in agg
